用途:根据旧对象创建相同的对象
优点:使用拷贝构造函数实现,支持深拷贝
缺点:
class CProtoType { public: CProtoType():m_nNum(0) { } ~CProtoType(); CProtoType* Clone() { CProtoType* pNewObj=new CProtoType(*this); return pNewObj; } void TextOut() { cout<<"Num = "<<m_nNum<<endl; } private: CProtoType& operator=(const CProtoType& crl); CProtoType(const CProtoType& crl) { //copy constructor func m_nNum=crl.m_nNum+1; } private: int m_nNum; };
//客户端
int main() { cout << "Hello, World!" << endl; CProtoType *pOldProto=new CProtoType; pOldProto->TextOut(); CProtoType *pNewProto=pOldProto->Clone(); pNewProto->TextOut(); system("pause"); return 0; }