三少爷

专注~~~

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
#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");

}

  

posted on 2012-03-28 14:45  三少_爷  阅读(150)  评论(0编辑  收藏  举报