要禁止复制或分配类,通常的做法是将复制构造函数和赋值运算符设为私有.谷歌和Qt都有宏,使这个变得简单明了.这些宏是:
谷歌:
#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
TypeName(const TypeName&); \
void operator=(const TypeName&)
Run Code Online (Sandbox Code Playgroud)
Qt的:
#define Q_DISABLE_COPY(Class) \
Class(const Class &); \
Class &operator=(const Class &);
Run Code Online (Sandbox Code Playgroud)
问题:为什么两个赋值运算符的签名不同?好像Qt版本是正确的.两者之间有什么实际区别?
c++ ×1