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

请解释C++中shared_ptr和weak_ptr的区别,以及weak_ptr如何解决循环引用问题?

恒生电子股份有限公司后端开发金融技术原理问题排查C++

考察说明

考察对C++智能指针底层原理的理解及循环引用场景的处理能力

回答思路

  1. 区分shared_ptr和weak_ptr的所有权与引用计数机制
  2. 说明weak_ptr不增加引用计数、需通过lock()获取shared_ptr
  3. 以循环引用为例说明为何单独使用shared_ptr会导致内存泄漏
  4. 补充weak_ptr在缓存、观察者等场景的典型用途
本题已收录答题指导

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

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