为什么派生类中的虚析构函数为空?

时间:2014-10-25 23:33:02

标签: c++

我有一个问题,我看到在某些代码中,派生类中的虚析构函数是空的,那么为什么我们需要它,因为它什么都不做?它是否用于在基类中调用析构函数而没有它,析构函数不能被调用?或者只是告诉代码阅读器这个析构函数是虚拟的,这使得代码更易于阅读?谢谢!

1 个答案:

答案 0 :(得分:6)

  

为什么我们需要它,因为它什么都不做?

如果基类已经有一个虚析构函数,我们不必在派生类中定义一个空的析构函数。把它放在那里的唯一理由是提醒其他读者你的代码中有一个虚拟的析构函数。

  

是否用于在基类中调用析构函数,如果没有它,则无法调用析构函数?

一个空的析构函数确实以与非空或继承的析构函数相同的方式参与析构函数链接。只要基类具有虚拟析构函数,提供空覆盖不会改变行为。