/*********************************
*设计模式--原型模式实现
*C++语言
*Author:WangYong
*Blog:http://www.cnblogs.com/newwy
********************************/
#include <iostream>
using namespace std;
class Prototype
{
public:
virtual ~Prototype(){};
virtual Prototype *Clone() const = 0;
};
Prototype *Prototype::Clone()const{return 0;}
class ConcretePrototype:public Prototype
{
public:
ConcretePrototype(){};
~ConcretePrototype(){};
ConcretePrototype(const ConcretePrototype &cp)
{
cout<<"ConcretePrototype copy..."<<endl;
}
Prototype* Clone()const
{
return new ConcretePrototype(*this);
}
};
int main()
{
Prototype *p = new ConcretePrototype();
Prototype *p1 = p->Clone();
return 0;
}