智能指针scoped_ptr

智能指针scoped_ptr

作用域结束后自动析构所管理的对象;该特性决定了scoped_ptr不能与其他scoped_ptr共享同一个指针(用相同裸指针构造多个scoped_ptr可通过编译,但会运行时崩溃)

换句话说,scoped_ptr提供的就是自动析构的便利特性,scoped_ptr是裸指针的唯一拥有者

如何手动析构裸指针?调用reset()

另,scoped_ptr之间可以用swap交换权利

另外简化了生命周期管理,不用遵循生命周期结束即释放的严格准则,只要在下次refresh时候调reset(xxx)即可。reset()是构造/分配新值

release() 放弃控制权后返回原裸指针(而非delete:delete只在reset才做)

get() 判断是否已初始化

智能指针的很多使用方式与普通指针类似(如运算符重载),但很多方面有不同:必须调用智能指针提供的方法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 原作者:Babu_Abdulsalam 本文翻译自CodeProject,转载请注明出处。 引入### Ooops...
    卡巴拉的树阅读 30,275评论 13 74
  • C#、Java、python和go等语言中都有垃圾自动回收机制,在对象失去引用的时候自动回收,而且基本上没有指针的...
    StormZhu阅读 9,153评论 1 15
  • C++ 智能指针详解 一、简介由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 de...
    yangqi916阅读 5,180评论 0 2
  • 导读## 最近在补看《C++ Primer Plus》第六版,这的确是本好书,其中关于智能指针的章节解析的非常清晰...
    小敏纸阅读 6,067评论 1 12
  • 寒假终于结束了!今天迎来了新一年开学季,宝贝好开心! 早上宝贝早早就起床了,再次检查好昨晚准备报名的资...
    小轩仔0808阅读 1,481评论 0 0

友情链接更多精彩内容