Qt 指针为零时的QObject::deleteLater()
指针等于0时调用QObject::deleteLater()安全吗?我用谷歌搜索了它并在文档中搜索了一下,但没有找到任何有用的信息。您不应该能够/不应该调用0指针的函数。Qt 指针为零时的QObject::deleteLater(),qt,pointers,qt4,Qt,Pointers,Qt4,指针等于0时调用QObject::deleteLater()安全吗?我用谷歌搜索了它并在文档中搜索了一下,但没有找到任何有用的信息。您不应该能够/不应该调用0指针的函数。 它应该被视为删除操作,但它是对象本身的函数,所以没有对象就没有函数 您不应该能够/不应该调用0指针的函数。 它应该被视为删除操作,但它是对象本身的函数,所以没有对象就没有函数 我变得迟钝了:(我可以检查指针是否等于0。谢谢:)deleteLater()的作用是:QCoreApplication::postEvent(这是新的Q
它应该被视为删除操作,但它是对象本身的函数,所以没有对象就没有函数 您不应该能够/不应该调用0指针的函数。
它应该被视为删除操作,但它是对象本身的函数,所以没有对象就没有函数 我变得迟钝了:(我可以检查指针是否等于0。谢谢:)deleteLater()的作用是:QCoreApplication::postEvent(这是新的QEvent(QEvent::DeferredElete));这反过来会打印一条警告“意外的空接收器”。所以从技术上讲,它不会崩溃,但由于API没有提供任何保证,因此依赖它是错误的。通常,在空指针上调用函数是有效的。实际上,当您取消引用空指针时,它将崩溃。如果您执行以下操作:
If(this==NULL)返回代码>然后对空指针调用此方法是安全的-比较指针不是取消引用。在Qt中,PostEvent to null接收器不会崩溃,因此deleteLater只会抛出警告。它不会取消对该
的引用。指针。您还可以阅读更多关于\u thiscall
的内容,从某种意义上说,如果在null上调用deleteLater()
不会导致崩溃是件好事。ptr:它是delete
的替代品,您可以删除某个指针
,而不必担心somepointer
为null(或不为null)。我很迟钝:(我可以检查指针是否等于0。谢谢:)deleteLater()的作用是:QCoreApplication::postEvent(这是新的QEvent(QEvent::DeferredElete));这反过来会打印一条警告“意外的空接收器”。因此,从技术上讲,它不会崩溃,但由于API没有提供任何保证,因此依赖它是错误的。通常,对空指针调用函数是有效的。在实践中,当您取消引用空指针时,它将崩溃。如果您这样做:If(this==null)return;
然后对空指针调用此方法是安全的-比较指针不会取消引用。在Qt中,PostEvent到空接收器不会崩溃,因此deleteLater只会抛出一个警告。它不会取消对此
指针的引用。您还可以阅读有关的更多信息\uu thiscall
从某种意义上说,deleteLater()
如果在null ptr上调用它不会导致崩溃:它是delete
的替代品,您可以删除somepointer
,而不必担心somepointer
为null(或不为null)