智能指针

来源:互联网 发布: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
原创粉丝点击