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

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

  1. 可能具有唯一的QObject :: objectName。
    Qt对象可以拥有自己的名称,objectName属性保存对象的名称。
    那么复制一个Qt对象,如何处理新的对象的名字?

  2. 在对象层次结构中具有位置。
    QObjects将自己组织在对象树中。
    那么复制一个Qt对象,新的对象应位于何处?

  3. 可以连接到其他Qt对象,以向它们发出信号或接收它们发出的信号。
    QObjects可以connect到其他对象。
    那么复制一个Qt对象,应该如何将这些连接转移到新的对象中?

  4. 可以在运行时添加未在C ++类中声明的新属性。
    那么复制一个Qt对象,原始对象中添加的属性是否应该复制到新对象?

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章