【智能指针-c++内存管理】

【智能指针-c++内存管理】,第1张

智能指针

c/c++最为人诟病的是内存的管理,确保正确的时间,释放掉正确的内存,很难。c++11开始,新的库提供了智能指针,可以自动的管理内存,释放对象占用的内存。

shared_ptr

是一个模板,使用跟指针也几乎没什么差别
shared_ptr p (new string(“abc”));
指向string的指针p
另外可以使用make_shared(q) 来创建一个指向q的智能指针

原理:智能指针内部有个关联的计数器,无论是拷贝还是初始化或者传参等等,计数器都会递增(ps,具体实现不一定是一个计数)一旦计数器变为0,则它会自动释放自己管理的对象,析构,释放内存。

unique_ptr

只能有一个unique_ptr指向一个对象

weak_ptr

指向一个shared_ptr管理的对象,但是不增加引用计数

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

原文地址: http://outofmemory.cn/langs/874906.html

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

发表评论

登录后才能评论

评论列表(0条)

保存