后端岗位面试题更新 2026-08-05

C++中构造函数和析构函数哪个可以是虚函数,为什么?

地平线后端开发电子/半导体风险判断技术原理C++

考察说明

考察C++面向对象中虚函数机制与构造/析构语义的理解

回答思路

  1. 明确指出析构函数可以是虚函数,构造函数不能
  2. 解释构造函数不能为虚的原因(虚表未建立、类型未完全构造)
  3. 说明析构函数声明为虚的必要性(多态删除时正确调用派生类析构)
  4. 能够举例说明非虚析构导致的内存泄漏或未定义行为
本题已收录答题指导

本题附完整参考答案与评分标准

登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。