Effective Modern C++ 条款18:对于独占资源使用std::unique_ptr

本文介绍了C++中std::unique_ptr的使用,强调了其在管理独占资源时的优势。std::unique_ptr具有专有所有权语义,不可拷贝但可移动,适合用于继承层次结构的工厂函数返回类型。在析构时,std::unique_ptr会销毁其所指向的资源。此外,文章还提到了如何使用自定义删除器以及std::unique_ptr与其他智能指针之间的转换。
摘要由CSDN通过智能技术生成

更多C++学习笔记,关注 wx公众号:cpp读书笔记

Item 18: Use std::unique_ptr for exclusive-ownership resource management

当你需要一个智能指针时,std::unique_ptr通常是最合适的。可以合理假设,默认情况下,std::unique_ptr大小等同于原始指针,而且对于大多数操作(包括取消引用),他们执行的指令完全相同。这意味着你甚至可以在内存和时间都比较紧张的情况下使用它。如果原始指针够小够快,那么std::unique_ptr一样可以。

std::unique_ptr体现了专有所有权(exclusive ownership)语义。一个non-null std::unique_ptr始终拥有其指向的内容。移动一个std::unique_ptr将所有权从源指针转移到目的指针。(源指针被设为null。)拷贝一个std::unique_ptr是不允许的,因为如果你能拷贝一个std::unique_ptr,你会得到指向相同内容的两个std::unique_p

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

举个栗子2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值