Почему виртуальный деструктор в производном классе пуст?

У меня есть один вопрос, я вижу, что в некоторых кодах виртуальный деструктор в производном классе пуст, тогда зачем он нам нужен, так как он ничего не делает? Используется ли он для вызова деструктора в базовом классе, и без него деструктор не может быть вызван? или это просто примечание, чтобы сказать читателю кода, что этот деструктор является виртуальным, что делает код намного проще для чтения? Спасибо!

1 ответ

Решение

зачем нам это нужно так как ничего не делает?

Если в базовом классе уже есть виртуальный деструктор, нам не нужно определять пустой в производном классе. Единственная причина, по которой это нужно сделать, - напомнить другим читателям вашего кода, что для класса существует виртуальный деструктор.

Используется ли он для вызова деструктора в базовом классе, и без него деструктор не может быть вызван?

Пустой деструктор участвует в цепочке деструкторов так же, как непустой или унаследованный деструктор. Пока базовый класс имеет виртуальный деструктор, предоставление пустого переопределения не меняет поведение.

Другие вопросы по тегам