c++ - 对象删除 : use parent or not

标签 c++ qt initialization delete-operator

你更喜欢哪一种删除对象?特别是在 QT 中,但也欢迎其他实践。这两种选择对我来说似乎是一样的,是吗?

  1. 绑定(bind)到另一个类,销毁时销毁。

    SomeClass::SomeClass{
     socket_ = new QTcpSocket(this);
    }
    

  1. 在类的析构函数中销毁

    SomeClass::SomeClass{
     socket_ = new QTcpSocket();
    }
    
    SomeClass::~SomeClass{
     delete socket_;
    }
    

最佳答案

身在罗马,入乡随俗。如果您的框架使用一种方法(例如 Qt 依赖父子关系),请在您的代码中使用该方法。

当然不要忘记一般良好的内存管理实践:尽可能在堆栈上创建对象、使用共享指针等。

关于c++ - 对象删除 : use parent or not,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2764806/

相关文章:

c++ - C++11 程序可以使用 BlueZ 吗?

c++ - 在 linux 中关闭 udp 套接字后 recv 不返回

c++ - 在 C++ 中,将 ~0u 赋值给变量意味着什么?

c++ - QT4没有这个信号

c++ - 为什么零初始化不是静态初始化

c++ - 在 Intellij 的 CLion 结构面板中显示类名

c++ - Qt paintEvent 崩溃

json - 使用 QJsonObject 读取 JSON

c++ - 在 C++98 中初始化结构数组的优雅方式

c++ - Valgrind - 未初始化的值和字节?