#include <iostream> #include <vector> #include <list> using namespace std; class Shape { public : virtual void draw() = 0; virtual ~Shape(){} }; class Circle: public Shape { public : void draw(){cout<< "Circle::draw\n" ;} ~Circle(){cout<< "~Circle\n" ;} }; class Triangle: public Shape { public : void draw(){ cout<< "Triangle::draw\n" ;} ~Triangle(){ cout<< "~Triangle\n" ;} }; class Square: public Shape { public : void draw(){ cout<< "Square::draw\n" ;} ~Square(){ cout<< "~Sauare\n" ;} }; typedef vector<Shape*> Container; //typedef list<Shape*> Container; typedef Container::iterator Iter; int main() { Container shapes; shapes.push_back ( new Circle()); shapes.push_back ( new Triangle()); shapes.push_back ( new Square()); for (Iter i = shapes.begin ();i != shapes.end ();i++) { (*i)->draw(); } for (Iter j = shapes.begin ();j != shapes.end ();j++) { delete *j; } system ( "pause" ); } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步