我们需要为那些将以Qt方式使用的类编写虚析构函数吗?即设置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
派生的东西已经有了虚析构函数。你可以添加一个特定于类的析构函数,但那只是额外的。如果你的问题是要求添加空析构函数,那是没有必要的。 - Kuba hasn't forgotten Monica