c++原型模式(Prototype)
生活随笔
收集整理的這篇文章主要介紹了
c++原型模式(Prototype)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原型模式是通過已經存在的對象的接口快速方便的創建新的對象。
#include <iostream> #include <string>using namespace std;class Prototype { public:virtual Prototype *Clone() = 0;virtual void display() = 0; };class Prototype1:public Prototype { protected:string name;int id; public:Prototype1(string name, int id){this->name = name;this->id = id;}Prototype1(const Prototype1 &type){this->name = type.name;this->id = type.id;}virtual void display(){cout<< "my name and id are :" << this->id << " "<<this->name <<endl;}Prototype *Clone(){return new Prototype1(*this);}}; class Prototype2:public Prototype { protected:string name; public:Prototype2(string name){this->name = name;}Prototype2(const Prototype2 &type){this->name = type.name;}virtual void display(){cout << "my name is :" << this->name << endl;}Prototype *Clone(){return new Prototype2(*this);}};int main() {Prototype *obj1 = new Prototype1("mafuli",1);Prototype *obj2 = obj1->Clone();Prototype *obj3 = obj2->Clone();obj2->display();obj3->display();Prototype *obj4 = new Prototype2("cxue");Prototype *obj5 = obj4->Clone();Prototype *obj6 = obj5->Clone();obj4->display();obj5->display();obj6->display();getchar();return 0; }輸出信息為:
my name and id are :1 mafuli my name and id are :1 mafuli my name is :cxue my name is :cxue my name is :cxue?
總結
以上是生活随笔為你收集整理的c++原型模式(Prototype)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: shell脚本参数
- 下一篇: run-time cloud serve