C++ 智能指针weak_ptr用途浅析
文章目录 C++ 智能指针weak_ptr用途浅析 1. weak_ptr的特性 2. 二叉树的实现 2.1 问题 2.2 方案1 2.3 方案2 3. 总结 C++ 智能指针weak_ptr用途浅析 我们知道C++智能指针有 shared_ptr 和 unique_ptr ,这两种指针基本就可以胜任堆内存的管理了,那么C++为什么还要提出 weak_ptr 呢? weak_ptr 这个东西到底有什么用途呢? 1. weak_ptr的特性 weak_ptr 也是指向 shared_ptr 指向的对象,但是并不管理引用计数和内存,操作如下: 所以,如果要使用weak_ptr,必须锁定为shared_ptr shared_ptr<element_type> lock() const noexcept; 从上面我们也可以知道,weak_ptr的初始化也是从shared_ptr来的,如下: //default (1) constexpr weak_ptr() noexcept; //copy (2) weak_ptr (const weak_ptr& x) noexcept; template <class U> weak_ptr (const weak_ptr<U>& x) noexcept; //from shared_ptr (3) template <class U> weak