c++11智能指针(一) shared_ptr

c++11智能指针(一) shared_ptr,第1张

智能指针是存储动态分配对象指针的类,用于生命周期的控制。当指针离开其作用域时,自动销毁动态分配的空间,防止内存泄漏。

使用智能指针需要包含头文件#include<memory>

std::shared_ptr采用引用计数,每一个shared_ptr的拷贝都指向相同的内容,当最后一个shared_ptr析构的时候,内存被释放

当使用shared_ptr删除数组时,需要指定删除器

常用的写法有以下几种

shared_ptr需要VS2008 SP1以上才自带有,头文件为#include <memory>,或者使用boost库(boost::shared_ptr),头文件为#include <boost/shared_ptr.hpp>

vs2008 error C2039: “shared_ptr”: 不是“std::tr1”的成员

vs2008创建的c++项目中用到了std::tr1::shared_ptr,

编译时报错:error C2039: “shared_ptr”: 不是“std::tr1”的成员。

原因:未安装vs2008 SP1

VS90sp1-KB945140-CHS.exe:

http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=FBEE1648-7106-44A7-9649-6D9F6D58056E

VS2008SP1CHSX1512981.iso:

http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=27673C47-B3B5-4C67-BD99-84E525B5CE61

若 不安装vs2008 SP1,也可使用Boost的实现boost::shared_ptr


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12071334.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存