原型模式-- 5种创建型模式之一
思想:使对象克隆自身,返回一个匿名对象,对匿名对象进行修改,不会影响原对象。
//注:下面代码使用了抽象类,然也可以使用不同的继承。
# include <iostream> using namespace std; //抽象原型 class AbsPrototype { public: virtual AbsPrototype* Clone() = 0; //克隆 virtual void show() = 0; //展示 }; //具体原型 class Prototype : public AbsPrototype { public: Prototype(int a) : a_(a) {} //拷贝构造器 Prototype(Prototype &obj) { this->a_ = obj.a_; } //克隆 virtual AbsPrototype* Clone() { return new Prototype(*this); } //展示 virtual void show() { cout << a_ << endl; } private: int a_; }; int main() { Prototype a(10); a.show(); AbsPrototype *b = a.Clone(); b->show(); }