C++/Funkcje wirtualne: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
→Wstęp: + |
→Wstęp: lit. |
||
Linia 2:
Funkcje wirtualne to specjalne funkcje składowe, które przydają się szczególnie, gdy używamy obiektów posługując się wskaźnikami lub referencjami do nich. Dla zwykłych funkcji z identycznymi nazwami to, czy zostanie wywołana funkcja z klasy podstawowej, czy pochodnej, zależy od typu wskaźnika, a nie tego, na co faktycznie on wskazuje. Dysponując funkcjami wirtualnymi będziemy mogli użyć prawdziwego '''polimorfizmu''' – używać metod klasy pochodnej wszędzie tam, gdzie spodziewana jest klasa podstawowa. W ten sposób będziemy mogli korzystać z metod klasy pochodnej korzystając ze wskaźnika, którego typ odnosi się do klasy podstawowej.
Chyba największą zaletą polimorfizmu jest to, że stanowi on „lepszą wersję” instrukcji warunkowych. Lepszą, bo wszelkie decyzje zależne od typu obiektu podejmowane są przez programistę tylko jeden raz: podczas tworzenia obiektu. W klasycznym podejściu, znanym z języka C, typ obiektu przechowuje się np. jako typ wyliczeniowy. Jest to proste i szybkie, ale zarazem kłopotliwe, bo przy każdej operacji zależnej od typu programista musi wstawić np. nowy blok 'if' lub 'case'. Gdy zachodzi potrzeba zmodyfikowania programu, np.
==Opis==
|