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