qt - 调用deleteLater()后立即初始化指针

标签 qt pointers qt4

调用deleteLater()后立即初始化Qt4指针是否安全? IE。下一个代码安全吗?

QLabel *label = new QLabel("Text");
// doing smth
label->deleteLater();
label = new QLabel("Other text");

最佳答案

根据the documentation (欢迎您将来自行咨询),您的代码完全没问题。但请注意,您的问题是错误的,因为您没有第二次“初始化”标签;您只是分配给它。

分配后,label 只是指向一个完全不同的新对象,并且原始对象已注册以供最终删除,所以一切都很好。

关于qt - 调用deleteLater()后立即初始化指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9446476/

相关文章:

python - QProgressDialog 取消按钮有时没有响应

c++ - 初始化字符串指针数组并通过函数调用打印相同的内容不起作用,为什么?

c - 使用结构的邮政编码

c - 如何在c中对双指针进行字母顺序排序?

c++ - 我自己的 c++ qt 库用于 qtruby、qtpython 等

c++ - 我是否应该将所有数据类实现为 QSharedData 并将其与 QSharedDataPointer 一起使用?

c# - 从 C# 运行 C++ Qt 应用程序

c++ - 堆分配的 QApplication 被删除

c++ - 如何将小部件添加到预先存在的 QLayout?

python - PyQt - 加载多个 UI 文件