0
点赞
收藏
分享

微信扫一扫

C++11新特性(43)- 智能指针weak_ptr


弱指针


weak_ptr看起来更像shared_ptr的附属品,它从shared_ptr衍生,但不会控制所指向对象的生命周期。weak_ptr的弱就弱在这里。

构建


一共有三种形式,都非常简单,直接看代码。


C++11新特性(43)- 智能指针weak_ptr_引用计数



执行结果:

C++11新特性(43)- 智能指针weak_ptr_引用计数_02

虽然根据shared_ptr构造了两个weak_ptr,引用计数仍然为1。


赋值

一样的简单。


C++11新特性(43)- 智能指针weak_ptr_引用计数_03


输出结果:

C++11新特性(43)- 智能指针weak_ptr_赋值_04

虽然根据shared_pt为两个weak_ptr赋值,引用计数仍然为1。

使用


C++11标准库没有提供通过weak_ptr直接访问对象的方法,而是调用weak_ptr的lock方法生成一个shared_ptr,再通过shared_ptr访问对象。


C++11新特性(43)- 智能指针weak_ptr_C++_05


输出结果:


C++11新特性(43)- 智能指针weak_ptr_C++_06

一句话归纳


weak_ptr提供了一种按需锁定对象的手段。


觉得本文有帮助?请分享给更多人。

阅读更多更新文章,关注微信公众号【面向对象思考】

C++11新特性(43)- 智能指针weak_ptr_引用计数_07


举报

相关推荐

0 条评论