2013-08-05 28 views
0

我必須將我自己的類型添加到Qt MetaObject系統(register metatype)。由於人工,下列要求必須得到滿足:Qt MOC:使用默認和複製構造函數時?

  • 默認構造函數
  • 拷貝構造函數
  • 析構函數

我的類不具有默認構造函數感;它將被創建只是爲了滿足QT MOS。然而:Qt如何,何時以及爲什麼要調用默認的ctor?如果我的類存儲指向動態創建的元素的指針,會發生什麼情況:MOS會創建這樣的類的副本,然後它會刪除它並釋放所有指針?

回答

0

將MOS創建這樣的類的副本,然後,它會刪除它並釋放所有指針?

是的,當宣佈事件時,它們首先被複制。這樣做是爲了簡化事件從一個線程到另一個線程的發送。

如果我的類存儲指向動態創建元素的指針,會發生什麼情況:MOS會創建這樣的類的副本,然後它會刪除它並釋放所有指針?

這就是自定義拷貝構造函數的用途。這是你的任務,以確保一切都被複制好,沒有內存泄漏(或其他問題)是可能的。


最後,我發現它在哪裏談話。它在this link

可選的類型參數描述了建立連接的類型。具體來說,它決定了一個特定的信號是立即傳送到插槽還是排隊等待稍後傳送。 如果信號排隊,參數必須是Qt元對象系統已知的類型,因爲Qt需要複製參數以將它們存儲在幕後的事件中。如果您嘗試使用排隊連接並收到錯誤消息

相關問題