智能指针
来源:互联网 发布:mac vm共享的文件在哪 编辑:程序博客网 时间:2024/05/18 21:41
显示的用new动态内存分配,用delete释放;这种显示的内存管理有一定的安全隐患,比如说我们忘记了释放,就会造成内存泄漏。
在C++11中提供了一种叫做智能指针的指针,它对内存回收技术(对垃圾回收技术)提供了一定的支持,使得我们的程序在内存管理上更加安全一些。
C++11提供智能指针的数据类型,对垃圾回收技术提供了一些支持,实现一定程度的内存管理
C++11提供的智能指针,有这样三种类型:
1、unique_ptr :
不允许多个指针共享资源,也就是说这个指针所指向的空间只能由它所指向,它中存放的地址不允许复制到别的指针里面去,但是可以用标准库中的move函数把它所指向的对象转移给别的指针,也就是把它里面存放的地址转移到别的指针中去,但一旦转移到别的指针中去,原来的这个unique_ptr类型的指针就失效了,不能再用了
2、shared_ptr:
多个指针共享资源,多个shared_ptr类型的指针可以指向同一个内存单元
3、weak_ptr :
该指针的使用复杂一些,可复制shared_ptr指针所指向的这个单元,可以复制shared_ptr指针里面的地址,但其构造或者释放对资源不产生影响
0 0
- 智能指针
- 智能指针
- 智能指针
- 智能指针
- 智能指针
- 智能指针
- 智能指针
- 智能指针
- 智能指针
- 智能指针
- 智能指针
- 智能指针
- 智能指针
- 智能指针
- 智能指针
- 智能指针
- 智能指针
- 智能指针
- spring mvc + hibernate 分页
- Android布局优化之<merge>与<ViewStub>标签使用
- XCode7和ios9的兼容和更新问题解决方案
- 确定两串乱序同构
- ffmpeg for mac 编译iOS
- 智能指针
- spark作业调度
- 技术团队如何招聘和管理
- SAP BO 学习地址
- CAGradientLayer的使用
- Android Studio快捷键设置
- jsp页面间的传值方法
- Android中常见的像素单位
- 使用vector出现的错误 subscript out of range