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函数在资源获取方面具有许多优势,优化了访问元素的循环。
🏷️
标签
➡️