C++ 11 智能指针 std::weak_ptr
在 C++ 11的智能指针体系中,除了 std::shared_ptr
和 std::unique_ptr
,还有一个非常重要的角色:std::weak_ptr
。它是一个“弱引用”指针,用于配合 shared_ptr
解决资源管理中的循环引用问题,并实现更灵活的生命周期控制。
🧠 一、什么是 std::weak_ptr
?
std::weak_ptr
是 C++11 引入的标准库模板类,定义于 <memory>
头文件中。它不拥有对象的所有权,只是对一个由 shared_ptr
管理的对象进行“弱引用”。
✅ 主要特性:
特性 | 描述 |
---|---|
不增加引用计数 | weak_ptr 不影响对象的生命周期 |
可升级为 shared_ptr | 通过 .lock() 方法获取一个临时的 shared_ptr |