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