13 skyrius - techmat.vgtu.lt
13 skyrius - techmat.vgtu.lt
13 skyrius - techmat.vgtu.lt
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Rezu<strong>lt</strong>atai:<br />
c1: 0<br />
c2: 0<br />
c2: 3<br />
c2: 1<br />
c1: 1<br />
Pastabos:<br />
1. Kad išvestinės klasės metodams būtų prieinami bazinės klasės laukai, būtinas toks<br />
raktažodis. Tačiau jei programoje būtų paveldimumu nesusietų klasių, protected laukai<br />
gretimų klasių metodams – neprieinami. Jei laukai būtų griežtai užverti – private – jie būtų<br />
prieinami tik pačios bazinės klasės viduje; išvestinei klasei – taip pat neprieinami.<br />
2. Taip nurodoma, kad klasė paveldi kitos klasės savybes; čia public reiškia, kad realizuojamas<br />
bendrasis paveldimumas (apie tai skyriaus pabaigoje).<br />
3. Išvestinės klasės konstruktorių nėra – jos objektui formuoti tokiu atveju pasitelkiamas<br />
bazinės klasės atitinkamas konstruktorius (t. y. konstruktorius be argumentų).<br />
4. Išvestinės klasės objektams prieinami bazinės klasės metodai returnCount( ) ir<br />
operator++(), o metodui operator--( ) – ir bazinės klasės konstruktorius su argumentais.<br />
5. Bazinė klasė ją išplėtus nepakinta, todėl jos objektui neprieinami išvestinės klasės<br />
papildomi metodai (čia – operator--( ) ).<br />
Kai programa sudėtinga, patogu pateikti jos klasių struktūrą ir paveldimumo schemą<br />
vadinamąja UML ( angl. Unified Modeling Language, unifikuota modeliavimo kalba) diagrama.<br />
UML diagramoje parodomi klasių pavadinimai, atskiruose laukeliuose išvardinami laukai,<br />
konstruktoriai, destruktoriai ir metodai. Paveldimumas žymimas rodykle link bazinės klasės.<br />
Išvestinės klasės laukeliuose užrašomas tik klasės pavadinimas ir visi papildomi laukai,<br />
konstruktoriai, destruktoriai ir metodai. Jei papildomų savybių laukų ar metodų skyriuose nėra –<br />
šie skyriai paliekami tušti.<br />
Pirmosios programos UML schema:<br />
Counter<br />
count<br />
Bazinė klasė<br />
Counter( )<br />
Counter( int )<br />
returnCounter( )<br />
operator++( )<br />
Išvestinė klasė<br />
CounterDown<br />
operator--( )<br />
164