QObject禁用复制构造函数和赋值运算符源于它的性质:
-
可能具有唯一的QObject :: objectName。
Qt对象可以拥有自己的名称,objectName属性保存对象的名称。
那么复制一个Qt对象,如何处理新的对象的名字? -
在对象层次结构中具有位置。
QObjects将自己组织在对象树中。
那么复制一个Qt对象,新的对象应位于何处? -
可以连接到其他Qt对象,以向它们发出信号或接收它们发出的信号。
QObjects可以connect到其他对象。
那么复制一个Qt对象,应该如何将这些连接转移到新的对象中? -
可以在运行时添加未在C ++类中声明的新属性。
那么复制一个Qt对象,原始对象中添加的属性是否应该复制到新对象?
由于这些原因,应将Qt对象视为身份而不是值。因此,QObject的拷贝构造函数和赋值操作符是禁用的。