0
A
回答
0
首先迭代您的設置,刪除其中的每個對象,然後刪除設置的對象。
但是,請注意Qt擁有自己的內存管理,只需刪除該組並將其中的對象由Qt的機制銷燬即可。
+0
我一段時間都沒有用過Qt,但是我敢肯定,當你將一個像`QDialog`這樣的ui元素傳遞給父對象時,該對象將負責對子UI元素的內存管理。儘管如此,不要引用我的話。 – 2011-12-17 10:30:56
1
是的,你需要以某種方式手動刪除dialogs_
中的每個QDialog
,如果有的話。
你可以通過QSet
和delete
自己迭代它們。因爲QDialog
繼承自QWidget
,所以另一種方法是簡單地將所有對話的父母對應起來,如果母公司也在免費商店中分配的話,那麼它們又將是delete
它們的delete
。
請注意,沒有理由在免費商店中分配QSet
,如果這就是您正在做的事情。您只需將其作爲班級的直接成員即可保存new
/delete
操作。
QSet<QDialog*> dialogs_;
這就是你不必擔心的一件事w.r.t.手動刪除。
2
這將這樣的伎倆:
qDeleteAll(*dialogs_);
delete dialogs_
你也可以不用提領:
qDeleteAll(dialogs_->begin(), dialogs->end());
delete dialogs_
相關問題
- 1. 當我刪除數組時,是否必須刪除字典中的每個元素?
- 2. 我們是否必須刪除QUpdSockets?
- 3. 如果元素被刪除,我是否必須清除DOM中的事件?
- 4. 我是否必須手動刪除每個實例的所有事件處理程序?
- 5. 是否必須手動完成EF upsert?
- 6. Bootstrap行元素是否必須是列的直接子元素?
- 7. 我是否必須刪除我用新分配的wchar_t?
- 8. 我是否必須一直指定System.Web.HttpContext.Current.Server?
- 9. mysql 5.1分區 - 我必須刪除索引/鍵元素嗎?
- 10. 刪除指針是否刪除它指向的內存?
- 11. 是否必須關閉()每個EntityManager?
- 12. 即使在函數堆棧中,也必須刪除指針嗎?
- 13. c中的指針刪除鏈表中每第二個元素的函數
- 14. 刪除結構的指針是否也會刪除結構中的指針?
- 15. 我是否必須在Java中手動停止線程?
- 16. 如何刪除一個指針數組中的元素的java
- 17. 我是否必須在Apache Tiles的每個tile中包含libs?
- 18. 刪除指針的指針
- 19. 如何在C++中刪除一個指針的元素
- 20. 我是否必須爲每張照片創建一個拇指文件?
- 21. 是指針的數組/向量可以刪除指針自動?
- 22. 每次我做一個小改動時,我是否必須重新加載app.js?
- 23. '刪除指針'是否意味着'*指針= 0'?
- 24. 是否必須在C++中初始化指針?
- 25. 我是否必須pthread_join創建每個線程?
- 26. C++刪除一個指針指針
- 27. 在指針向量中刪除一個元素
- 28. 從同一個指針指定另一個元素的指針的元素
- 29. 錯誤:'*'的操作數必須是一個指針
- 30. 我是否需要手動刪除或管理這個unique_ptr
你提供一些背景。如果你的類只是初始化`dialogs_`到`NULL`然後否,你不需要'刪除'任何東西。它做別的事嗎?我們不知道,你沒有告訴我們。 – 2011-12-17 09:26:15