QObject禁用複製構造函數和賦值運算符源於它的性質:
-
可能具有唯一的QObject :: objectName。
Qt對象可以擁有自己的名稱,objectName屬性保存對象的名稱。
那麼複製一個Qt對象,如何處理新的對象的名字? -
在對象層次結構中具有位置。
QObjects將自己組織在對象樹中。
那麼複製一個Qt對象,新的對象應位於何處? -
可以連接到其他Qt對象,以向它們發出信號或接收它們發出的信號。
QObjects可以connect到其他對象。
那麼複製一個Qt對象,應該如何將這些連接轉移到新的對象中? -
可以在運行時添加未在C ++類中聲明的新屬性。
那麼複製一個Qt對象,原始對象中添加的屬性是否應該複製到新對象?
由於這些原因,應將Qt對象視爲身份而不是值。因此,QObject的拷貝構造函數和賦值操作符是禁用的。