// poly.cpp -- CopyWrong by tsaiwn@csie.nctu.edu.tw #include class Shape{ public: virtual // 把這列去掉再 run 看看 void draw(){ cout << "drawing\n"; } }; class Line: public Shape{ public: void draw(){ cout << "draw a line\n"; } }; class Circle: public Shape{ public: void draw(){ cout << "here is a circle\n"; } }; int main(){ Circle * ppp; Shape * fig[5]; // ppp = new Shape(); // error ppp = (Circle *)new Shape(); ppp -> draw(); ppp = (Circle *)new Line(); ppp -> draw(); ppp = new Circle(); ppp -> draw(); cout << "======" << endl; fig[0] = new Line(); fig[1] = new Circle(); fig[2] = new Circle(); fig[3] = new Line(); fig[4] = new Circle(); for(int k=0; k<5; k++){ fig[k] -> draw(); } }