强指针与弱指针 转化 std::weak_ptr<xxx>, std::shared_ptr<xxx>

std::weak_ptr是C++11标准库引入的一种智能指针,用于处理循环引用问题。它不增加对象引用计数,且在对象销毁后变为无效。通过lock()函数,可以尝试将std::weak_ptr转换为std::shared_ptr,若对象仍存活,则返回有效的强引用,否则返回空指针。
摘要由CSDN通过智能技术生成

std::weak_ptr 是 C++11 标准库中的一个智能指针,它是一种弱引用,不会增加所指向对象的引用计数,也不会阻止所指向对象被销毁。它主要用于解决循环引用问题,可以在 std::shared_ptr 的基础上创建一个 std::weak_ptr 对象,当需要使用所指向对象时,可以通过 std::weak_ptr 对象转换为 std::shared_ptr 对象来获得所指向对象的强引用。而 lock() 函数就是将一个 std::weak_ptr 对象转换为一个 std::shared_ptr 对象的函数,如果转换成功,则返回一个指向所指向对象的 std::shared_ptr 对象,否则返回一个空的 std::shared_ptr 对象 。

在您提供的代码中,owner_.lock() 的作用是将 owner_ 转换为一个指向所指向对象的 std::shared_ptr 对象。如果转换成功,则返回一个指向所指向对象的 std::shared_ptr 对象,否则返回一个空的 std::shared_ptr 对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值