自定义了一个类,当你觉得不需要系统默认的拷贝构造函数以及重载赋值运算符时,你需要手动禁用这些。
如果类的成员中有指针的话,浅拷贝方式的结果是两个不同对象的指针指向同一块内存区域,容易出现访问冲突,多次delete等错误,不是我们所希望的。
禁止拷贝/赋值
将拷贝构造函数和重载赋值运算符设为private来禁止拷贝
#define DISABLE_COPY(Class) \
Class(const Class &); \
Class &operator=(const Class &)
class Widget
{
public:
int* pi;
private:
DISABLE_COPY(Widget);
};
===============