// obiekty ------------------------------- std::cout << jakasFigura.pole() << std::endl; // wynik: -1 std::cout << jakisKwadrat.pole() << std::endl; // wynik: 25 std::cout << jakiesKolo.pole() << std::endl; // wynik: 28.274...

// wskazniki ----------------------------- wskJakasFigura = &jakasFigura; std::cout << wskJakasFigura->pole() << std::endl; // wynik: -1 wskJakasFigura = &jakisKwadrat; std::cout << wskJakasFigura->pole() << std::endl; // wynik: 25 wskJakasFigura = &jakiesKolo; std::cout << wskJakasFigura->pole() << std::endl; // wynik: 28.274...

// referencje ----------------------------- wyswietlPole( jakasFigura ); // wynik: -1 wyswietlPole( jakisKwadrat ); // wynik: 25 wyswietlPole( jakiesKolo ); // wynik: 28.274...

return 0;

W przykładzie znajdują się deklaracje 3 klas: Figura, Kwadrat i Kolo. W klasie Figura została zadeklarowana metoda wirtualna (słowo kluczowe virtual) virtual float pole(). Każda z klas pochodnych od klasy Figura ma zaimplementowane swoje metody float pole(). Następnie (w funkcji main) znajdują się deklaracje obiektów każdej z klas i wskaźnika mogącego pokazywać na obiekty klasy bazowej Figura.