QObject为什么禁用复制构造函数和赋值运算符

2次阅读

共计 352 个字符,预计需要花费 1 分钟才能阅读完成。

QObject 禁用复制构造函数和赋值运算符源于它的性质:

  1. 可能具有唯一的 QObject :: objectName。
    Qt 对象可以拥有自己的名称,objectName 属性保存对象的名称。
    那么复制一个 Qt 对象,如何处理新的对象的名字?
  2. 在对象层次结构中具有位置。
    QObjects 将自己组织在对象树中。
    那么复制一个 Qt 对象,新的对象应位于何处?
  3. 可以连接到其他 Qt 对象,以向它们发出信号或接收它们发出的信号。
    QObjects 可以 connect 到其他对象。
    那么复制一个 Qt 对象,应该如何将这些连接转移到新的对象中?
  4. 可以在运行时添加未在 C ++ 类中声明的新属性。
    那么复制一个 Qt 对象,原始对象中添加的属性是否应该复制到新对象?

由于这些原因,应将 Qt 对象视为身份而不是值。因此,QObject 的拷贝构造函数和赋值操作符是禁用的。

正文完
 0