智能指针中,weak_ptr 通过 lock() 升级为 shared_ptr 之后,再发生复制,相关计数器(控制块中的 use_count 和 weak_count)会如何变化?请结合循环引用场景展开说明。
考察说明
考察对 weak_ptr 锁定、shared_ptr 复制时引用计数变化及循环引用问题的理解
回答思路
- 说明 lock() 升级时 use_count 和 weak_count 的增减规则
- 说明升级后的 shared_ptr 再次复制时 use_count 递增、weak_count 不变
- 结合实际例子解释 weak_ptr 如何打破循环引用
- 对比直接构造 shared_ptr 与通过 lock 升级在计数器上的差异
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。