[英]Dynamic memory Deallocation in QT
QT編碼中動態分配的指針是如何被破壞的,因為我們沒有為它們編寫特定的析構函數?
為了擴展Neox的答案 ,Qt有兩種對象管理方法:
這兩者並沒有真正混合得很好,原因很明顯。
QObject可以是“空閑”或擁有父級。 當QObject有其父集時(通過向QObject構造函數提供指向另一個QObject的指針,或者通過調用setParent()
),父QObject成為子QObject的所有者,並確保它的任何子節點都被銷毀。是。 還有幾種方法可用於檢查子/父關系。
另一種管理動態分配對象的方法是托管指針類, 本文非常好地解釋了這一點 。 總結一下:
正如您所看到的,一些受保護的指針類可以與QObject樹一起使用,但是您應該確保在執行此操作之前徹底閱讀並理解文檔,否則您最終可能會損壞數據結構。
簡短的回答是:
QObjects在對象樹中組織自己。 當您使用另一個對象作為父對象創建QObject時,它將添加到父對象的children()列表中,並在父對象時刪除。
Qt有一個關於框架內對象層次結構和所有權的好文檔。 你可以在這里閱讀
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.