delete释放字符串指针_C++ unique_ptr释放指针控制权

上次学习了unique_ptr的基本功能。

这次学习一下如果unique_ptr如何释放对于指针的管理。

release()方法。

通过调用release()方式,释放原来存在unique_ptr的指针控制权,同时返回这个指针。

3f7297af5f2881090c479375e43ab69c.png

拿到这个指针之后可以正常的操作,但是最终需要自己来释放这个指针。

有时候需要将一个unique_ptr转移到另一个unique_ptr中,这个时候,就需要使用release()和reset()两个方法。

f2cf010f0c276bddab0aa7f2f9482b51.png

这样p里面保存的指针就被转移到了p2里面。最后有p2这个unique_ptr来delete保存的指针。

接着在试一下get()函数,用于返回unique_ptr里面保存的指针。

983b4c6cd4bd10e5c64875dbf9b11083.png

但是要注意,get()方法并不会影响unique_ptr的控制权。如何只是后delete掉get()出来的指针,unique_ptr不会知道,当unique_ptr退出作用域的时候,仍会去delete这个指针,这样就导致双重释放,而报错。

1ae3a44429a91243ec504fb9334c40e3.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值