考虑在堆上实例化的任何QObject。如果它不是父级,并且没有任何内容可以删除它,那么它是否应该以任何理由输入QObjectPrivate::deleteChildren()
?
答案 0 :(得分:0)
但当然,删除与破坏是正交的。如果该对象被破坏,它当然会删除它的孩子。有些东西可能会调用对象上的析构函数而不从堆中释放它。那就是你的代码,或编译器生成的代码,顺便说一句,Qt中没有“魔法”来随机破坏QObject
。
如果对象的生命周期由合适的智能指针(例如QScopedPointer
,QSharedPointer
,std::unique_ptr
或std::shared_ptr
)管理,则智能指针将破坏对象,没有你明确做任何事情。