确保两点: 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;
};
本文深入探讨了面向对象编程的基本概念,并详细解析了继承机制在类与类之间的应用,通过实例展示了如何实现类的复制构造函数和赋值运算符重载。

1491

被折叠的 条评论
为什么被折叠?



