prototype模式

通过一个已有对象创建新对象,这里拷贝构造函数

prototype.h

#ifndef _PROTOTYPE_H

#define _PROTOTYPE_H

#include <iostream>

using namespace std;

class Prototype

{

public:

virtual ~Prototype() {};

virtual Prototype* Clone() const = 0;

protected:

Prototype() {};

};

class ConcretePrototype : public Prototype

{

public:

ConcretePrototype() {};

ConcretePrototype(const ConcretePrototype& cp) {

cout << "ConcretePrototype copy" << endl;

}

~ConcretePrototype() {};

Prototype* Clone() const {

return new ConcretePrototype(*this);

}

};

#endif // _PROTOTYPE_H

prototype.cpp

#include "prototype.h"

int main()

{

Prototype* p = new ConcretePrototype;

Prototype* p1 = p->Clone();

return 0;

}

编译:make prototype

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容