如果我有一个基类和一个派生类,并且我在父虚拟中删除了析构函数,但实例化了一个子类类型的对象,那么在销毁时它会调用父析构函数吗(因为是虚拟的)?如果我还在派生类中声明了一个析构函数,它会同时调用两个析构函数(基类和派生类)。提前致谢 :-)。
我的问题的第二部分是关于第一部分。为什么基类析构函数需要声明为virtual。不要构造函数在层次结构中循环。他们不共享相同的名字,那么哪里需要它?它不应该对析构函数起作用吗,或者默认情况下只有一个被调用?另外通过后期绑定是否能够检测到所有的类和对象是由什么组成的?
编辑:我的问题不仅仅是关于虚拟析构函数,而是为什么它需要被声明为虚拟的,因为它们都应该被默认调用。