c++ - qt类什么时候作为智能指针使用

标签 c++ qt

例如:

QFile* file = new QFile...

如果没有删除文件是内存泄漏吗?我问是因为我是 Qt 的新手,在查看一些代码时我发现了这个,所以我想知道这对 Qt 类来说是否合理?

最佳答案

使用QFile,通常没有理由让它成为动态的,但是是的->删除应该在这里,否则它会泄漏。

在 Qt 中,“对于每个新的都应该删除”的强制性规则只有一个异常(exception)。

如果您像这样使用父级创建小部件:

QWidget* w = new QWidget();
QWidget* w2 = new QWidget(w);

一旦您删除了 w - 它的所有子项(在我们的示例中为 w2)也将被删除。这缩短了代码,但这只是一个异常(exception)。其余内容 - 应删除。

已编辑:当然,您可以使用 QScopedPointer,或通常的 std::unique_ptr。

关于c++ - qt类什么时候作为智能指针使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28555278/

相关文章:

c++ - 如何实现线程安全的功能

c++ - Qt、C++、3D 矩阵立方体

c++ - 使用 C++ 和 Windows API 以编程方式更改墙纸

c++ - 如何更改 Qt Creator 构建工具?

qt - 使用 Qt 的 QProcess 作为 popen(使用 ffmpeg rawvideo)

html - 适合显示静态 html 页面的 C++ 小部件

c++ - 显式默认和删除的构造函数 : is there any similar functionality available in VS2012?

c++ - 如何用 vstring 替换 std::string?

c++ - 从 C++ 调用 COM dll, "Class Not Registered"

c++ - DLL缓存问题