C++/Funkcje wirtualne: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
żądny -> żądany
Linia 171:
Rzutowanie dynamiczne pozwala '''w czasie wykonywania''' konwertować wskaźniki lub referencje klas bazowych do klas pochodnych - jest to tzw. rzutowanie w dół (hierarchii). Rzutowanie to realizuje operator '''dynamic_cast''', jednak dostępny jest jedynie dla klas posiadających metody wirtualne (klasy polimorficzne). Ogólnie C++ pozwala na odczytywanie informacji o zależnościach między klasami polimorficznymi, jest to tzw. RTTI (ang. ''RunTime Type Information''), '''dynamic_cast''' korzysta z tych danych.
 
Jakie jest zastosowanie takiego rzutowania? Wyobraźmy, że posiadamy listę figur z przykładu. Figura jednak udostępnia jedynie swój interfejs, a my np. chcielibyśmy wykonać jakieś działanie wyłącznie na obiektach typu Kwadrat. Dzięki '''dynamic_cast''' możemy sprawdzić, czy figura jest odpowiedniego typu, dokonać konwersji i używać obiektu Kwadrat w żądnyżądany sposób.
 
<source lang="cpp">