智能指针

C++ 11 智能指针 unique_ptr、shared_ptr 与 weak_ptr

C++ 11 中有 unique_ptr、shared_ptr 与 weak_ptr 等智能指针(smart pointer),定义在 <memory> 中,用于对动态资源进行管理,保证任何情况下,已构造的对象最终会销毁。

1. unique_ptr

unique_ptr 持有对对象的独有权,同一时刻只能有一个 unique_ptr 指向给定对象。

实现方式

举例

2. shared_ptr

shared_ptr 允许多个智能指针共享拥有同一堆分配对象的内存,一旦最后一个这样的指针被销毁,这个对象会被自动删除。

实现方式

举例

3. weak_ptr

weak_ptr 可以从一个 shared_ptr 或另一个 weak_ptr 对象构造,但并不拥有该内存,即 weak_ptr 的构造和析构不会增加和减少对象的引用计数。

实现方式

举例

4. auto_ptr

已被 deprecated,被 unique_ptr 替代。

5. 总结

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

相关阅读更多精彩内容

  • 原作者:Babu_Abdulsalam 本文翻译自CodeProject,转载请注明出处。 引入### Ooops...
    卡巴拉的树阅读 30,300评论 13 74
  • C#、Java、python和go等语言中都有垃圾自动回收机制,在对象失去引用的时候自动回收,而且基本上没有指针的...
    StormZhu阅读 9,169评论 1 15
  • C++裸指针的内存问题有:1、空悬指针/野指针2、重复释放3、内存泄漏4、不配对的申请与释放 使用智能指针可以有效...
    WalkeR_ZG阅读 8,412评论 0 5
  • 导语: C++指针的内存管理相信是大部分C++入门程序员的梦魇,受到Boost的启发,C++11标准推出了智能指针...
    7ee72f98ad17阅读 4,535评论 0 1
  • 持酒听风瑟, 寒弦上指柔。 竹窗摇醉影, 枯树挂银勾。
    子越诗集阅读 3,385评论 8 16

友情链接更多精彩内容