问题描述
|
通常,删除对象时将其设置为零。这有助于我编写例程以检查对象不为零然后继续。
但是,如果我使用“ 0”功能,我将失去控制。我不知道它是否有效,还是需要创建一个新项目。我发现的解决方案只是单独跟踪状态,但是还有更好的方法吗?
解决方法
如果在对象上调用
deleteLater()
,然后将指针设置为nullptr
,则没有任何错误。 Qt框架将为您安全删除对象。
或者,您也可以连接到损坏的信号,以通知对象已损坏,并将指针设置为该插槽中的“ 2”。
,如果要删除的对象是QObject,则可以使用QPointer。这会将其设置为NULL。
,您是说“将指针归零”吗?在C ++中,区分对象和指向它的指针比Java更重要。在这里,这尤其重要,因为如果将对象清零,则析构函数将无法工作。如果将指向该对象的指针归零,则没问题,因为Qt会添加另一个指向“要删除的对象”列表的指针。