Нужен ли виртуальный деструктор для классов, которые будут использоваться в Qt-way: установите QObject
-parent, который вызовет деструктор QObject deleteLater()
или что-то подобное для любого объекта, для которого он был установить как родитель?Виртуальный деструктор класса C++ Qt
Например:
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', уже имеет виртуальный деструктор. Вы можете добавить класс, но это только дополнение. Нет причин добавлять пустых деструкторов, если это то, о чем вы просите. –