如果我有一个基类和一个派生类,并且在父类中声明了虚析构函数,但实例化了子类对象,当销毁时会调用父类的析构函数(因为是虚函数)吗?如果我还在派生类中声明了析构函数,会同时调用两个析构函数(基类和派生类)吗?提前感谢您的回答 :-)
我的问题的第二部分与第一部分相关。为什么需要在基类中声明虚析构函数?构造函数不是按照层次结构自动调用吗?它们没有共享同一个名称,那么为什么需要这样做呢?难道析构函数不应该默认调用所有的函数吗?此外,通过后期绑定,它能检测到所有的类和对象吗?
编辑:我的问题不仅仅是关于虚析构函数的,而是为什么需要声明虚析构函数,因为它们本来就应该默认被调用。
我的问题的第二部分与第一部分相关。为什么需要在基类中声明虚析构函数?构造函数不是按照层次结构自动调用吗?它们没有共享同一个名称,那么为什么需要这样做呢?难道析构函数不应该默认调用所有的函数吗?此外,通过后期绑定,它能检测到所有的类和对象吗?
编辑:我的问题不仅仅是关于虚析构函数的,而是为什么需要声明虚析构函数,因为它们本来就应该默认被调用。