面试真题

C++ · 中等 · 哔哩哔哩

weak_ptr如何实现的?如何使用weak_ptr?

中等 C++ 🎤 哔哩哔哩
参考答案
结论:weak_ptr是弱引用智能指针,不拥有对象所有权,用于安全观测shared_ptr管理对象。要点:实现上内部含指向shared_ptr控制块(含强引用计数、弱引用计数、对象指针)的指针,构造/赋值只增弱引用计数不影响对象生命期;使用:由shared_ptr构造,lock()尝试提升为shared_ptr(对象存活返回有效否则空),expired()检查是否释放;用途:打破shared_ptr循环引用(如双向链表一方用weak_ptr),避免内存泄漏与悬空。
题目整理自公开面经,答案由校招宝自研生成,仅供参考