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. 当我删除数组时,是否必须删除字典中的每个元素?
- 3. 我们是否必须删除QUpdSockets?
- 4. 用指针删除列表也是必须清除的对象
- 5. 如果元素被删除,我是否必须清除DOM中的事件?
- 6. 我是否必须手动删除每个实例的所有事件处理程序?
- 7. 我是否必须将网格中的每个元素单独居中?
- 8. 是否必须手动完成EF upsert?
- 9. Bootstrap行元素是否必须是列的直接子元素?
- 10. 是否每个声明为指针的变量都必须分配内存?
- 11. 我是否必须删除我用新分配的wchar_t?
- 12. 我是否必须一直指定System.Web.HttpContext.Current.Server?
- 13. 我必须删除从arraylist元素取消选中复选框
- 14. mysql 5.1分区 - 我必须删除索引/键元素吗?
- 15. 必须删除一个构造函数是否是私有的?
- 16. jQuery - 删除每个元素
- 17. 是否必须关闭()每个EntityManager?
- 18. 删除指针是否删除它指向的内存?
- 19. 我是否必须删除此对象? (如果我不打算被删除)
- 20. 即使在函数堆栈中,也必须删除指针吗?
- 21. 是否必须在每个会话中指定tablockx?
- 22. 删除结构的指针是否也会删除结构中的指针?
- 23. c中的指针删除链表中每第二个元素的函数
- 24. 我是否必须在Java中手动停止线程?
- 25. LinkedHashMap removeEldestEntry是否删除2个元素?
- 26. 是否删除[]释放指针分配的内存指针
- 27. dynamic_casting后删除指针是否安全?
- 28. 我是否必须在Apache Tiles的每个tile中包含libs?
- 29. 我是否必须连接到每个查询的数据库?
- 30. 如何删除一个指针数组中的元素的java
你提供一些背景。如果你的类只是初始化`dialogs_`到`NULL`然后否,你不需要'删除'任何东西。它做别的事吗?我们不知道,你没有告诉我们。 – 2011-12-17 09:26:15