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

能否在构造函数或析构函数中调用 shared_from_this()?为什么?

腾讯后端开发互联网/IT风险判断技术原理C++

考察说明

考察对 enable_shared_from_this 内部机制及对象生命周期控制的理解

回答思路

  1. 明确指出构造函数中调用会抛出 bad_weak_ptr 的逻辑原因
  2. 说明 shared_ptr 所有权在构造完成前未建立,weak_ptr 未初始化
  3. 对比析构函数中调用同样非法,因为所有权已解除
  4. 给出正确做法:在创建对象后的工厂函数或初始化方法中调用
本题已收录答题指导

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

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