std::weak_ptr
时间: 2023-11-09 15:16:30 浏览: 88
std::weak_ptr 是一种智能指针,它对被 std::shared_ptr 管理的对象存在非拥有性(「弱」)引用。它用来表达临时所有权的概念,当某个对象只有存在时才需要被访问,而且随时可能被他人删除时,可以使用 std::weak_ptr 来跟踪该对象。
std::weak_ptr 可以通过 std::weak_ptr::lock() 方法转换为 std::shared_ptr,获得对被管理对象的临时所有权。如果原来的 std::shared_ptr 被销毁,则该对象的生命周期将被延长至这个临时的 std::shared_ptr 同样被销毁为止。
需要注意的是,std::shared_ptr 的构造函数在其 std::weak_ptr 为空时会抛出异常,而 std::weak_ptr::lock() 方法则会构造一个空的 std::shared_ptr。这意味着通过 std::weak_ptr 转换而来的 std::shared_ptr 可能为空,因此在使用之前需要进行有效性检查。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [c++ 智能指针 (std::weak_ptr)(三)](https://blog.csdn.net/qq_40788199/article/details/126794751)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文