在 C++ 中,为什么构造函数不能是虚函数,而析构函数可以是虚函数?请结合对象构造和析构的机制解释。
考察说明
考察对构造函数、析构函数与多态关系的深入理解
回答思路
- 能说明对象构造时类型已被完全确定,虚函数调用没有意义
- 能解释虚函数表在构造完成后才可用,基类构造期间调用虚函数不会动态绑定
- 能说明析构函数声明为 virtual 是为了确保通过基类指针删除派生类对象时能正确调用派生类析构函数
- 能提及如果没有虚析构函数,删除派生类对象会导致未定义行为
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。