16.05.2015 Views

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

taki element klasy pochodnej, który nie został odziedziczony i<br />

którego nie ma w klasie bazowej? Rozwiązanie jest proste -<br />

wystarczy zarządać od <strong>C++</strong>, by chwilowo zmienił typ wskaźnika z<br />

obiektów klasy bazowej na obiekty klasy pochodnej. W przypadku<br />

funkcji Szczekaj() w naszym programie wyglądałoby to tak:<br />

CZwierzak *p;<br />

...<br />

p->Oddychaj();<br />

p->Szczekaj(); //ŹLE !<br />

(CPiesek*)p->Szczekaj(); //Poprawnie<br />

...<br />

Dzięki funkcjom wirtualnym tworząc klasy bazowe pozwalamy<br />

późniejszym użytkownikom na rozbudowę funkcji-metod w<br />

najwłaściwszy ich zdaniem sposób. Dzięki tej "nieokreśloności"<br />

dziedzicząc możemy przejmować z klasy bazowej tylko to, co nam<br />

odpowiada. Funkcje w <strong>C++</strong> mogą być jeszcze bardziej<br />

"nieokreślone" i rozbudowywalne. Nazywają się wtedy funkcjami w<br />

pełni wirtualnymi.<br />

- 342-

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

Saved successfully!

Ooh no, something went wrong!