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

Usunięta treść Dodana treść
Pomylone został pojęcia funkcji wirtualnych i abstrakcyjnych, w miejscu wyraźnie opisującym te drugie.
Linia 192:
Niekiedy tworząc klasy nie wiadomo, jak jedną lub więcej metod zrealizować. Np. są to metody mające zapisywać wyniki - a one mogą być zapisywane do pliku, na konsolę, wysyłane przez sieć, być może użytkownik będzie chciał dostać dodatkowe podsumowanie itp. Czyli dana metoda musi się wykonać, ale z punktu widzenia projektu klasy nie chcemy bądź nie możemy wnikać w szczegóły jej działania.
 
Wówczas można użyć '''metod abstrakcyjnych''', które posiadają jedynie deklarację (zakończoną dodatkowo "= 0"); takie metody można wywoływać w innyminnych metodach. Klasa posiadająca przynajmniej jedną metodę abstrakcyjną staje się '''klasą abstrakcyjną''' i nie można utworzyć instancji takiej klasy. Jedynym sposobem na utworzenie instancji jest odziedziczenie po takiej klasie i dodanie definicji '''wszystkich metod abstrakcyjnych'''. Oczywiście możliwe jest dziedziczenie, gdy nie definiuje się wszystkich metod wirtualnych, wówczas taka klasa pochodna nadal jest abstrakcyjna.
 
Przykład deklaracji:
Linia 202:
};
</source>
 
 
==Nadpisywanie metod wirtualnych - override (C++11)==