ic: virtual void drawO { s->dr
Автор admin Суббота, 20 июня 2009 11:32
ic: virtual void drawO { s->draw(); } virtual void eraseO { s->erase(): } virtual void testO { s->test(): } virtual -ShapeO { cout « “-Shape” « endl: if(s) { cout « “Making virtual call: “: s->erase(): // Виртуальный вызов* } cout « “delete s: “: delete s: // Полиморфное удаление // (выражение delete 0 допустимо, это пустая операция) } class BadShapeCreation : public logic_error { public: BadShapeCreation(string type) : logic_error(“Cannot create type ” + type) {} }: Shape(string type) throw(BadShapeCreation); }: class Circle : public Shape { Circle(Circle&): Circle operator-(Circle&): CircleO {} // Private constructor friend class Shape: public: void drawO { cout « “Circle: :draw” « endl: } void eraseO { cout « “Circle: :erase” « endl: } void testO { drawO: } -CircleO { cout « “Circle::-Circle” « endl; } }: class Square : public Shape { Square(Square&): Square operator=(Square&): SquareO {} friend class Shape; public: void drawO { cout « “Square:: draw” « endl: } void eraseO { cout « “Square::erase” « endl; } void testO { drawO: } -SquareO { cout « “Square::-Square” « endl: } }: Shape::Shape(string typ
Комментарии закрыты.
Последние комментарии