如何让QObject :: deleteLater()将对象归零?

Phi*_*ent 12 c++ qt memory-management qobject

通常,当我删除一个对象时,我将其设置为零.这有助于我编写我的例程以检查对象是否为零然后继续.

但是,如果我使用该deleteLater()功能,我已经失去了对它的控制.我不知道它是否是一个有效的项目,或者我是否需要创建一个新项目.我找到的解决方案只是为了分别跟踪状态,但有更好的方法吗?

O.C*_*.C. 20

如果调用deleteLater()对象然后将指针设置为,则没有任何错误nullptr.Qt框架将安全地为您删除该对象.

作为替代方案,您还可以连接到已销毁的信号,以通知对象的破坏并将指针设置nullptr在该插槽中.


sep*_*sep 9

如果要删除的对象是QObject,则可以使用QPointer.这会将其设置为NULL.