Prototype模式是一种对象创建型模式,它采取复制原型对象的方法来创建对象的实例。使用Prototype模式创建的实例,具有原型一样的数据。
3) 根据对象克隆深度层次的不同,有浅度克隆和深度克隆。

#include <iostream>
using namespace std;
class Pro
{
public:
virtual Pro* clone() = 0;
virtual void print() = 0;
};
class CPlusPlusPro : public Pro
{
public:
CPlusPlusPro(string name, string job)
{
m_job = job;
m_name = name;
}
CPlusPlusPro(CPlusPlusPro &cpp)
{
m_name = cpp.m_name;
m_job = cpp.m_job;
}
virtual void print()
{
cout << m_name << " : " << m_job << endl;
}
virtual Pro* clone()
{
return new CPlusPlusPro(*this);
}
public:
string m_name;
string m_job;
};
int main()
{
CPlusPlusPro *tmp = new CPlusPlusPro("tom", "engineer");
tmp->print();
Pro *cpp = tmp->clone();
cpp->print();
delete cpp;
delete tmp;
return 0;
}
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">
原文:http://www.cnblogs.com/enumhack/p/7472777.html