24.03.2015 Views

13 skyrius - techmat.vgtu.lt

13 skyrius - techmat.vgtu.lt

13 skyrius - techmat.vgtu.lt

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!