Введение в язык Си++


Виртуальная Функция Вывода


Иногда функция вывода должна быть virtual. Рассмотрим пример класса shape, который дает понятие фигуры ():

class shape { // ... public: // ... virtual void draw(ostream s); // рисует "this" на "s" };

class circle : public shape { int radius; public: // ... void draw(ostream); };

То есть, круг имеет все признаки фигуры и может обрабатываться как фигура, но имеет также и некоторые специальные свойства, которые должны учитываться при его обработке.

Чтобы поддерживать для таких классов стандартную парадигму вывода, операция

ostream operatordraw(s); return s; }

Если next - итератор типа определенного в #7.3.3, то список фигур распечатывается например так:

while ( p = next() ) cout



Содержание раздела