31.12.2014 Views

Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...

Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...

Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...

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.

Švariai v<strong>ir</strong>tualūs metodai <strong>ir</strong> abstrakčios klas÷s<br />

Kartais bazin÷je klas÷je negali būti prasmingos v<strong>ir</strong>tualaus metodo realizacijos. Jeigu<br />

mes sutarsime, kad klas÷ Shape nusako abstrakčią figūrą, neturinčią jokio vaizdo<br />

ekrane, netgi taško, tuomet galime metodą draw() padaryti švariai v<strong>ir</strong>tualų (pure<br />

v<strong>ir</strong>tual), pr<strong>ir</strong>ašydami "= 0" jo antrašt÷je:<br />

class Shape<br />

{<br />

...<br />

v<strong>ir</strong>tual void draw(QPainter* p) = 0;<br />

};<br />

Klas÷, turinti bent vieną švariai v<strong>ir</strong>tualų metodą, vadinama abstrakčia.<br />

Kompiliatorius neleidžia sukurti abstrakčios klas÷s objektų. Švariai v<strong>ir</strong>tualus<br />

metodas neturi jokio kūno, netgi tuščio. Tai daugiau pažadas, kad paveld÷tos klas÷s<br />

pateiks savo realizacijas. Jei paveld÷ta klas÷ nerealizuoja visų bazin÷s klas÷s švariai<br />

v<strong>ir</strong>tualių metodų, tai <strong>ir</strong> ji pati tampa abstrakčia.<br />

97

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

Saved successfully!

Ooh no, something went wrong!