Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 指针为零时的QObject::deleteLater()_Qt_Pointers_Qt4 - Fatal编程技术网

Qt 指针为零时的QObject::deleteLater()

Qt 指针为零时的QObject::deleteLater(),qt,pointers,qt4,Qt,Pointers,Qt4,指针等于0时调用QObject::deleteLater()安全吗?我用谷歌搜索了它并在文档中搜索了一下,但没有找到任何有用的信息。您不应该能够/不应该调用0指针的函数。 它应该被视为删除操作,但它是对象本身的函数,所以没有对象就没有函数 您不应该能够/不应该调用0指针的函数。 它应该被视为删除操作,但它是对象本身的函数,所以没有对象就没有函数 我变得迟钝了:(我可以检查指针是否等于0。谢谢:)deleteLater()的作用是:QCoreApplication::postEvent(这是新的Q

指针等于0时调用QObject::deleteLater()安全吗?我用谷歌搜索了它并在文档中搜索了一下,但没有找到任何有用的信息。

您不应该能够/不应该调用0指针的函数。
它应该被视为删除操作,但它是对象本身的函数,所以没有对象就没有函数

您不应该能够/不应该调用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)