能否在构造函数或析构函数中调用 shared_from_this()?为什么?
考察说明
考察对 enable_shared_from_this 内部机制及对象生命周期控制的理解
回答思路
- 明确指出构造函数中调用会抛出 bad_weak_ptr 的逻辑原因
- 说明 shared_ptr 所有权在构造完成前未建立,weak_ptr 未初始化
- 对比析构函数中调用同样非法,因为所有权已解除
- 给出正确做法:在创建对象后的工厂函数或初始化方法中调用
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。