面试题答案
一键面试- 析构函数调用顺序:
- 首先调用
Derived
类的析构函数。 - 然后调用
Base
类的析构函数。
- 首先调用
- 原因:
- 当通过
Base
类指针删除Derived
类对象时,由于Base
类的析构函数是虚函数,根据C++的多态机制,会动态绑定到实际对象类型(即Derived
类)的析构函数。先调用Derived
类的析构函数是为了清理Derived
类中新增的成员变量或资源等。之后,再调用Base
类的析构函数,以清理Base
类中定义的成员变量或资源,这样能确保整个对象的资源都能被正确释放,保证程序的内存安全和正确性。
- 当通过