修正一处,多谢@金星凌日
提醒<code class="lang-cpp">class MyClass
{
private:
// 两个模拟函数
void CopyFrom(MyClass& src);
void Dispose();
public:
// 需要自己写的函数
MyClass(); // 默认构造函数(清空内存并设置默认值)
MyClass(int a, int b, char *str); // 常规构造函数
public:
// C++定式模型:丢弃旧的,拷贝新的
~MyClass() { Dispose(); } // 析构函数(丢弃旧的)
MyClass(MyClass& src) { CopyFrom(src); } // 复制构造函数(拷贝新的)
MyClass& operator=(MyClass& src) { // 赋值运算符(丢弃旧的,拷贝新的)
if (&src != this) { // 【修正】:判断自赋值情况
Dispose();
CopyFrom(src);
}
return *this;
}
public:
int a;
int b;
char *str;
};</code>