0
Qtでは、親オブジェクトがその子オブジェクトの所有権を取得することがわかりました。しかし、自分のクラスがQtクラスから派生している場合は、派生クラスのデストラクタでメモリを制御する必要がありますか、Qtでそれを行いますか?以下の例は以下のとおりです。Qtクラスから派生したユーザ定義クラスのメモリの所有者
#include <QWidget>
#include <QPushButton>
class MyWidget: public QWidget{
public:
MyWidget(QWidget* parent = 0): QWidget(parent) {
this->setAttribute(Qt::WA_DeleteOnClose);
m_button = new QPushButton(this);
}
~MyWidget() { delete m_button; } // do I need this to prevent leaks?
private:
QPushButton* m_button;
}
だから私の質問、私はメモリリークを防ぐために~MyWidget()
が必要なのですか?または、QWidget
はどういうわけか私のためにメモリを管理しますか?