关于c++中的智能指针
来源:互联网 发布:俄罗斯人 知乎 编辑:程序博客网 时间:2024/05/29 15:16
智能指针:
格式:auto_pre<类名>取的名字(new 类名());
名字.get() 判断智能指针是否为空,得到智能指针的裸指针
当一个智能指针向另一个智能指针赋值的时候,或者通过函数传参数的时候,就移交了管理权,再使用的该指针的时候就为空了。所以名字.release()时不调用析构函数。
eg Sample *s=sample.release();
delete s; //这样是可以的
为了解决上面的尴尬问题,引入了boost,搭建好环境,然后点击工程名,Library Search Paths 中配置环境/Users/students/Desktop/Boost/homebrew/Cellar/boost/1.57.0/lib
在Header Search Paths 中/Users/students/Desktop/Boost/homebrew/Cellar/boost/1.57.0/include
要使用boost 就要引用头文件#include<>
boost/smart_ptr.hpp>
using namespace boost;
格式:scoped_ptr<类名>取的名字(new 类名());
boost::weak_ptr<Sample>my_memory_weak;
boost::shared_ptr<Sample> my_memory(new Sample(1));
cout<<"TestaWeakPtr boost::shared_ptr UseCount:"<<my_memory.use_count()<<endl;
my_memory_weak=my_memory;
cout<<"TestaWeakPtr boost::shared_ptr UseCount:"<<my_memory.use_count()<<endl;
/*
基类中定义一个 boost::weak_ptr,用于指向子类的boost::shared_ptr,这样基类仅仅观察自己的boost::weak_ptr是否为空就知道子类有没有对自己赋值,而不影响子类的引用计数,用以降低复杂度
*/
- C ++中的智能指针
- 关于c++中的智能指针
- 关于C语言中的指针
- C/C++: stl 和 boost 中的智能指针
- 关于智能指针 auto_ptr
- 关于智能指针 CComPtr
- 关于scoped_ptr智能指针
- 关于C++智能指针
- 关于智能指针
- 关于智能指针小结
- 关于智能指针!
- Boost中的智能指针
- Nebula中的智能指针
- Qt中的智能指针
- Boost 中的智能指针
- WebKit中的智能指针
- WebKit中的智能指针
- C++中的智能指针
- Objective-C:结构体和对象
- RAC+DG 单节点重启DG失效问题
- 第十五周OJ (9)字符串比较
- Java 泛型
- 微信web开发者工具使用教程
- 关于c++中的智能指针
- 树莓派GPIO开发基础(一)c语言
- 双向链表的增删改查
- 2.7 Swift逻辑运算符
- Linux JDK 安装
- Android判断应用或Activity是否存在
- TCP/IP之大明内阁---协议的制定
- 从hadoop发展角度彻底明白hadoop1.x与hadoop2.x的区别
- Android 数据持久化