设计模式之原型模式(prototype)
2013-07-20 21:10
459 查看
原理:拷贝自身对象实际上就是调用的拷贝构造函数,注意事项是这里的拷贝是深拷贝,即需要拷贝指针所指的内容
#include <stdio.h> #include <memory> #include <iostream> class Resume { public: virtual Resume* Clone(){return NULL;} virtual ~Resume(){} protected: char *name; }; class ResumeA:public Resume { public: ResumeA(const char* str); Resume* Clone(); ResumeA(const ResumeA& r); ~ResumeA(); }; ResumeA::ResumeA(const char* str) { if (str == NULL) { name= new char[1]; name[0] = '\0'; } else { int length = strlen(str); name = new char[length + 1]; strcpy(name,str); name[length] = '\0'; } } ResumeA::ResumeA(const ResumeA& r) { int length = strlen(r.name); name = new char[length + 1]; strcpy(name,r.name); } Resume* ResumeA::Clone() { return new Resume(*this); } int main() { Resume* pObja= new ResumeA("abc"); Resume* pCloneObja= pObja->Clone(); delete pObja; delete pCloneObja; return 0; }
相关文章推荐
- 阿Sam的设计模式学习笔记---- 原型(Prototype)模式
- Java设计模式-----Prototype原型模式
- JAVA设计模式(5) —<创建型>原型模式(Prototype)
- 设计模式(四)原型模式Prototype(创建型)
- 设计模式C++描述----08.原型(Prototype)模式
- 设计模式(四)原型模式Prototype(创建型)
- 设计模式之Prototype(原型)
- Java经典设计模式-创建型模式-原型模式(Prototype)
- 23种设计模式之原型模式(Prototype)
- C++设计模式-Prototype原型模式
- Prototype(原型)设计模式
- 设计模式笔记--创建型模式之四--原型prototype
- 设计模式读书笔记之原型模式(Prototype)
- 设计模式学习笔记(十一)—Prototype原型模式
- java设计模式--原型设计模式 Prototype
- java语言实现创建型设计模式—原型模式(Prototype)
- 设计模式入门之原型模式Prototype
- 设计模式原型模式(Prototype)- 面馆里的菜单
- 设计模式学习笔记(四)——Prototype原型
- [设计模式整理笔记 七] 原型模式(ProtoType)