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

析构函数可以是虚函数吗?一定是虚函数吗?在哪些情况下应将其声明为虚函数?这是判断是否写成虚函数的条件吗?

中望软件后端开发专业服务风险判断技术原理C++

考察说明

考察C++析构函数与虚函数的关系、多态删除的边界及设计决策

回答思路

  1. 正确说明析构函数可以是虚函数,且基类析构函数通常应声明为虚函数
  2. 指出析构函数不一定是虚函数,并解释何时需要或不需要
  3. 说明通过基类指针删除派生类对象时,非虚析构可能导致未定义行为
  4. 阐述判断是否为虚析构的条件不单是'哪些情况',而是基类是否会被多态删除
本题已收录答题指导

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

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