弱指针主要特点和用途有哪些

2023年 11月 28日 31.6k 0

弱指针(Weak Pointer)是 C++11 引入的一种智能指针,用于解决 std::shared_ptr 可能引发的循环引用问题。

与 std::shared_ptr 不同的是,弱指针并不增加引用计数,因此不会影响对象的生命周期。

图片[1]-弱指针主要特点和用途有哪些-不念博客

主要特点和用途

不增加引用计数

弱指针不会增加所指向对象的引用计数。

当最后一个强引用(std::shared_ptr)销毁时,无论弱指针是否存在,引用计数都会减少。

不影响对象生命周期

弱指针不会影响所指向对象的生命周期。

当对象被销毁后,弱指针会被自动置空,不再指向任何对象。

用于解决循环引用

当两个或多个对象相互持有对方的 std::shared_ptr,可能形成循环引用,导致对象无法正确释放。

使用弱指针可以打破循环引用,防止内存泄漏。

使用示例

#include
#include

class MyClass;

int main() {
std::shared_ptr ptr1 = std::make_shared();
std::weak_ptr weakPtr = ptr1;

// 使用弱指针获取共享指针
if (auto sharedPtr = weakPtr.lock()) {
std::cout

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论