【发布时间】:2015-04-30 05:31:15
【问题描述】:
对于将在 Qt-way 中使用的类,我们是否需要一个虚拟析构函数: set QObject-parent 它将调用 QObject 的析构函数 deleteLater() 或类似的任何对象,它被设置为父母?
例如:
class MyWidget : public QWidget {
public:
MyWidget() {
w = new QWidget(this);
// "w" will be deleted automatically by parent MyWidget::QWidget::QObject's destructor afaik
}
private:
QWidget *w;
}
如果要继承 MyWidget 类,我们是否需要一个虚拟析构函数?我认为没有理由这样做,因为它不会删除任何内容,并且从 QObject 派生的类的每个属性都将从 MyWidget::QWidget::QObject 的析构函数中删除。
【问题讨论】:
-
我不明白这个问题:从
QObject派生的任何东西都已经有一个虚拟析构函数。您可以添加一个特定于类的,但这只是一个添加。如果这就是您的要求,则没有理由添加空析构函数。
标签: c++ qt inheritance destructor