class Figure { ... virtual void Draw() const; ... }; class Square : public Figure { ... virtual void Draw() const; ... }; class Circle : public Figure { ... virtual void Draw() const; ... }; Figure* figures[10]; figures[0] = new Square(1, 2, 10); figures[1] = new Circle(3, 5, 8); … for (int i = 0; i < 10; i++) figures[i]->Draw(); У цьому разі для кожного елементу буде викликана Square::Draw() або Circle::Draw() залежно від виду фігури. Чисто віртуальною функцією називається функція-член, яка не визначена в базовому класі, а тільки в нащадках: class Figure { ... virtual void Draw() const = 0; );