се CRectangle спецификатор vir
Автор admin Воскресенье, 17 мая 2009 11:32
се CRectangle спецификатор virtual. class CRectangle { // Другие объявления public: virtual void Draw (void): // Другие объявления }: Помните: спецификатор virtual нельзя включить в определение функции DrawO, находящееся вне определения класса. Его можно включить в объявление функции DrawO в производном классе CFillRectangle, хотя в этом нет необходимости. class CFillRectangle : public CRectangle { // Другие объявления public: virtual void Draw (void); // Другие объявления }: Если функция объявлена в базовом классе как виртуальная, то функция с таким же именем, типом возвращаемого значения и параметрами, объявляемая в производном классе, автоматически рассматривается как виртуальная. Следовательно, нет необходимости повторять спецификатор virtual в каждом производном классе, тем не менее иногда это облегчает чтение программы. Так, если функция Draw() в нашем примере определена в качестве виртуальной и программа вызывает ее через указатель PRect, как показано ниже, компилятор автоматически не генерирует вызов версии функции Draw(), определенной в классе CRectangle. Вместо этого компилятор создает специал
Комментарии закрыты.
Последние комментарии