boost中五种智能指针auto_ptr、unique_ptr、scoped_ptr、shared_ptr、weak_ptr

本文详细介绍了C++中的智能指针,包括auto_ptr、unique_ptr、scoped_ptr、shared_ptr及weak_ptr的特点与用法。其中,unique_ptr可通过移动构造和移动赋值进行所有权转移;scoped_ptr不可复制也不可移动,用于确保指针在其作用域结束时被删除;shared_ptr通过引用计数管理多个对象;weak_ptr辅助shared_ptr解决循环引用问题。

auto_ptr

特点:只能作用于一个对象,一个对象只需要开辟空间,由它进行内存的管理。

unique_ptr

特点:只能作用于一个对象,可以通过移动构造和移动赋值进行分转移。

scoped_ptr

特点:局部的,既不是可复制也不可移动 。 这是当你想出去的作用域时,确保指针被删除的首选、

shared_ptr<强引用,循环引用>

特点:可以作用于多个对象,通过引用计数的原理。构造函数中进行加1,析构函数中记进行减1操作。

weak_ptr

辅助share_ptr 使用,解决循环引用的问题,不具有拥有权,没有-> ,*等操作。

转载:
https://blog.youkuaiyun.com/zsc_976529378/article/details/52250597

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值