红颜莎娜
基本上如果你有一个析构函数(不是默认的析构函数),这意味着你定义的类有一些内存分配。假设该类在某些客户端代码之外或由您使用。 MyClass x(a, b);
MyClass y(c, d);
x = y; // This is a shallow copy if assignment operator is not provided如果MyClass只有一些原始类型成员,则默认赋值运算符可以工作,但如果它有一些指针成员和没有赋值运算符的对象,则结果将是不可预测的。因此我们可以说如果在类的析构函数中有删除的东西,我们可能需要一个深度复制操作符,这意味着我们应该提供一个复制构造函数和赋值操作符。