c++ - Qt 对象的生命周期

标签 c++ qt object object-lifetime

Qt 对象的生命周期是多少?

如:

QTcpSocket *socket=new QTcpSocket();

socket什么时候会被销毁?我应该使用

delete socket;

有什么区别:

QTcpSocket socket;

我找不到关于此的深入信息,欢迎任何评论或链接。

最佳答案

Qt 使用父子关系来管理内存。如果您在创建 QTcpSocket 对象时提供父对象,父对象将负责清理它。例如,父级可以是使用套接字的 GUI 窗口。一旦窗口消失(即关闭),套接字就会消失。

您可以在没有父对象的情况下执行此操作,但实际上您必须手动删除 对象。

我个人建议坚持使用惯用的 Qt 并将所有对象链接到父子树中。

关于c++ - Qt 对象的生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3264420/

相关文章:

javascript - 在 JavaScript 中不使用 DOM 事件的自定义事件模型

javascript - 使用 map 转换数组 - Javascript

c++ - 是否有用于查找列表项并集的标准算法

c++ - DirectX 当我将纹理添加到四边形时,三角形以某种方式弄乱了,修复了吗?

python - QLineEdit 更改边框颜色而不更改边框样式

c++ - 如何将 ATL/MFC CString 转换为 QString?

java - 如果按钮被读取为节点,如何在 JavaFX 中获取按钮的文本?循环遍历按钮组/VBox。将其作为节点返回

c++ - 通过继承实现 AVL 树

c++ - QT QMainWindow 全屏无边框

c++ - 如何在 QGraphicsItem 中实现半透明重叠区域?