0

考虑在堆上实例化的任何 QObject。如果它没有父级,并且没有任何东西调用它,它是否应该出于任何原因进入QObjectPrivate::deleteChildren()

4

1 回答 1

0

但当然,删除与破坏是正交的。如果该对象被破坏,它当然会删除它的子对象。有些东西很可能会在对象上调用析构函数而不从堆中释放它。那是你的代码,或者是编译器生成的代码,顺便说一下,Qt 中没有随机破坏QObjects 的“魔法”。

如果对象的生命周期由合适的智能指针(例如QScopedPointerQSharedPointerstd::unique_ptrstd::shared_ptr)管理,则智能指针将破坏对象,而您无需显式执行任何操作。

于 2013-10-28T16:33:19.440 回答