C++11的智能指针总结

到现在为止遇到了几种智能指针

shared_ptr

特点:可以自动销毁,并且可以多个指针指向同一块动态内存,内部有一个计数器,等到计数器为零就会自动销毁

weak_ptr

特点:是shared_ptr指针的附属,weak_ptr指向shared_ptr的区域,但并不会增加shared_ptr的计数器值,而且也不可以直接使用,需要lock(),提升为shared_ptr才可以使用。

scope_ptr

特点:也可以自动释放,但是不能和其他指针共享内存,也就是一块共享内存只能有一个scope_ptr指针,因为scope_ptr在销毁时是直接销毁这个指针指向的动态内存,如果有其他指针一起指向,那么其他指针就没有用了。

并且这个指针不能进行移动和复制操作的,可以交换

unique_ptr:也可以自动释放,但是不能和其他指针共享内存,也就是一块共享内存只能有一个scope_ptr指针

但是这个指针可以移动,不能复制

unique_ptr<TEST> p2(p1.release());

例如上面程序就是把p1指向的内容转给了p2,然后p1指向NULL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值