std:weak_ptr 用法小结。
来源:互联网 发布:少儿编程软件 编辑:程序博客网 时间:2024/05/20 18:45
http://blog.csdn.net/coolmeme/article/details/43266319
参考了这篇博客,感谢博主的贡献,感谢博主的翻译。不过他写的太多了,我只是记录一下使用方法,原理就不深究了。需要了解其原理的可以自行去那篇博客学习。
仅供学习参考。。
定义:
std::weak_ptr一般是通过std::shared_ptr来构造的。当std::shared_ptr初始化std::weak_ptr时,std::weak_ptr就指向了相同的地方,但它不改变所指对象的引用计数。这是的构造指初始化它。。。
你所需要的是一个原子操作来检查std::weak_ptr是否过期,如果没过期则提供对所指对象的访问。可以通过从std::weak_ptr构造std::shared_ptr。。这里的构造指获得一个不过期的sharedptr。
第一种方式:
std::weak_ptr::lock,它返回一个std::shared_ptr。如果std::weak_ptr失效,则std::shared_ptr为空。
第二种方式:
另一种形式是把std::weak_ptr作为参数来构造std::shared_ptr。这样,如果std::weak_ptr失效的话,则会抛异常:
std::shared_ptr<Widget> spw3(wpw); // if wpw's expired,
// throw std::bad_weak_ptr
注意:
1.使用std::weak_ptr来指向可能悬浮的std::shared_ptr一样的指针。
2.可能使用std::weak_ptr的情况包括缓存,观察模式中的观察者列表,以及防止std::shared_ptr环路。
阅读全文
0 0
- std:weak_ptr 用法小结。
- std:weak_ptr
- auto_ptr、shared_ptr、weak_ptr、scoped_ptr用法小结
- auto_ptr、shared_ptr、weak_ptr、scoped_ptr用法小结
- auto_ptr、shared_ptr、weak_ptr、scoped_ptr用法小结
- auto_ptr、shared_ptr、weak_ptr、scoped_ptr用法小结
- auto_ptr、shared_ptr、weak_ptr、scoped_ptr用法小结
- auto_ptr、shared_ptr、weak_ptr、scoped_ptr用法小结
- auto_ptr、shared_ptr、weak_ptr、scoped_ptr用法小结
- auto_ptr、shared_ptr、weak_ptr、scoped_ptr用法小结
- auto_ptr、shared_ptr、weak_ptr、scoped_ptr用法小结
- auto_ptr、shared_ptr、weak_ptr、scoped_ptr用法小结
- std::shared_ptr 和 std::weak_ptr
- std::shared_ptr 和 std::weak_ptr的用法以及引用计数的循环引用问题
- std::shared_ptr 和 std::weak_ptr的用法以及引用计数的循环引用问题
- std::shared_ptr 和 std::weak_ptr的用法以及引用计数的循环引用问题
- std::shared_ptr 和 std::weak_ptr的用法以及引用计数的循环引用问题
- c++ std::bind用法小结。
- rabbitMq storm
- MariaDB安装及字符集配置
- 学习C++的一点归纳总结
- 详细讲解 利用实际例子 c++有限队列 使用方法
- PHP生成唯一的激活码转自
- std:weak_ptr 用法小结。
- MyBatis知识三 DAO开发模式
- 百度研发类面试题(C++方向)
- mysql数据库开发常见问题及优化
- Hadoop格式化namenode时候,出现Java异常:URI has an authority component问题的解决
- 如何将APP崩溃率降低到万分之一以下
- struts2实现ajax传输json
- Java面试题
- 实验报告->数组的定义和使用->连接两个字符串