C++复制对象时勿忘每一部分
确保两点: 1 复制所有的成员变量 2 调用所有基类的copy函数
class Customer { public: explicit Customer(const tstring _name,const tstring _lastTransaction) :m_sName(_name), m_sLastTransaction(_lastTransaction) { OutputDebugString(_T("Customer construct \n")); } virtual ~Customer(){ OutputDebugString(_T("Customer deconstruct \n")); } Customer(const Customer& customer) : m_sName(customer.m_sName) { OutputDebugString(_T("Customer copy construct \n")); } Customer& operator=(const Customer& customer) { m_sName = customer.m_sName; OutputDebugString(_T("Customer operater \n")); return *this; } private: tstring m_sName; tstring m_sLastTransaction; }; class PriorityCustomer: public Customer { public: explicit PriorityCustomer(const tstring name,const tstring lastTime,int nPriority): m_nPriority(nPriority), Customer(name, lastTime) { OutputDebugString(_T("PriorityCustomer construct \n")); } PriorityCustomer(const PriorityCustomer& rhs) :m_nPriority(rhs.m_nPriority), Customer(rhs) { OutputDebugString(_T("PriorityCustomer copy construct\n")); } PriorityCustomer& operator=(const PriorityCustomer rhs) { OutputDebugString(_T("PriorityCustomer operater \n")); m_nPriority = rhs.m_nPriority; Customer::operator=(rhs); return *this; } virtual ~PriorityCustomer(){ OutputDebugString(_T("PriorityCustomer deconstruct \n")); } private: int m_nPriority; };
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。