ый прямоугольник PFigure [Coun
Автор admin Воскресенье, 17 мая 2009 11:32
ый прямоугольник PFigure [Count++] – new CFillRectangle (10. 15. 25. 30. 5); // … // Создается прямоугольник PFigure [Count++] – new CRectangle(5, 8. 19. 23); // … // Создается прямоугольник с закругленными углами PFigure [Count++] – new CRoundRectangle (27. 33. 43. 56. 10. 5); Предположим, что имеется подпрограмма, которая служит для перерисовки всех объектов на экране. Если сделать функцию Draw() виртуальной, добавив спецификатор virtual в ее объявление внутри класса CRectangle, программа автоматически вызовет правильную версию функции для текущего типа объекта. Перерисовка фигуры может быть выполнена с помощью следующего фрагмента программы. for (int i = 0; i < Count; ++i) PFigure [i]->Draw(); Полиморфизм 487 Этот код простой и компактный, к тому же он не требует изменения при добавлении в иерархию нового класса, поддерживающего фигуры другого типа. Применение виртуальных функций для модификации базовых классов Виртуальную функцию можно использовать для модификации базового класса, не изменяя при этом его код. Предположим, задан класс, предназначенный для вывода окна сообщения и, возможно, являющ
Комментарии закрыты.
Последние комментарии