C++ 中的弱指针

💡 原文中文,约5300字,阅读约需13分钟。
📝

内容提要

C++的weak_ptr是一个标准库组件,用于存储对由shared_ptr控制的对象的弱引用。它通过转换为shared_ptr来访问对象。weak_ptr不直接访问元素,而是使用shared_ptr对象来调用Lock函数。weak_ptr的主要目的是防止循环引用。通过Lock函数可以获取独占的锁定。weak_ptr还可以与shared_ptr共享所有权。weak_ptr在资源释放后会被擦除。

🎯

关键要点

  • C++的weak_ptr是一个标准库组件,用于存储对由shared_ptr控制的对象的弱引用。
  • weak_ptr通过转换为shared_ptr来访问对象,主要目的是防止循环引用。
  • weak_ptr不直接访问元素,而是使用shared_ptr对象的Lock函数来访问资源。
  • weak_ptr在资源释放后会被擦除,失去对对象的控制。
  • 使用Lock函数可以获取独占的锁定,防止其他资源冲突。
  • weak_ptr的expired()方法用于检查所有权是否过期。
  • 使用use_count()可以计算和跟踪shared_ptr对象的数量。
  • swap()技术用于在两个weak_ptr之间交换资源。
  • 示例代码展示了weak_ptr和shared_ptr的基本用法和行为。
  • C++的weak_ptr函数在资源获取方面具有许多优势,优化了访问元素的循环。
➡️

继续阅读