序列容器

#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");

}

  

原文地址:https://www.cnblogs.com/wuliqun/p/2421262.html