// @topic T071220 Inheritance demo, pure virtual function // @brief CPrimitive, CPrimitiveLine, CPrimitiveCircle, CPrimitiveRectangle #include <cstdlib> #include <iostream> #include <vector> using namespace std; class CPrimitive { virtual void draw() = 0; // pure virtual function };//class CPrimitive class CPrimitiveLine : public CPrimitive { public: void draw() { cout << __FUNCTION__ << "\n"; } }; class CPrimitiveCircle : public CPrimitive { public: void draw() { cout << __FUNCTION__ << "\n"; } }; class CPrimitiveRectangle : public CPrimitive { public: void draw() { cout << __FUNCTION__ << "\n"; } }; void doit() { vector< CPrimitiveLine > lines( 3 ); CPrimitiveLine line; lines.push_back( line ); vector< CPrimitiveCircle > circles( 4 ); vector< CPrimitiveRectangle > rectangles( 5 ); for (CPrimitiveLine line : lines) line.draw(); for (CPrimitiveCircle circle : circles) circle.draw(); for (CPrimitiveRectangle rectangle : rectangles) rectangle.draw(); } int main() { doit(); system("pause"); }