请解释C++中shared_ptr和weak_ptr的区别,以及weak_ptr如何解决循环引用问题?
考察说明
考察对C++智能指针底层原理的理解及循环引用场景的处理能力
回答思路
- 区分shared_ptr和weak_ptr的所有权与引用计数机制
- 说明weak_ptr不增加引用计数、需通过lock()获取shared_ptr
- 以循环引用为例说明为何单独使用shared_ptr会导致内存泄漏
- 补充weak_ptr在缓存、观察者等场景的典型用途
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。