C++新特性之四:标准库中的智能指针和引用计数

总第33篇

本文主要介绍C++11/14在标准库中对智能指针和引用计数的扩充,以供大家学习和工作的过程中参考。

1.引用计数

引用计数是为了防止内存泄漏而产生的,其基本理念是:对于动态分配的对象进行引用计数,当增加一次对同一个对象的引用时,计数加1,当删除一次引用时,计数减1,当一个对象的引用计数减为0时,就自动删除指向的堆内存。

在传统C++中,总是手动的释放资源,用newdelete去实现。而在C++11中,引入智能指针和引用计数,让程序开发者不再关心手动释放内存。 这些智能指针包括:std::shared_ptrstd::unique_ptrstd::weak_ptr,使用它们需要包含头文件<memory>

注意,引用计数并不是垃圾回收,引用技术能尽快回收不再被使用的对象,同时在回收的过程中也不会造成长时间的等待,更能够清晰明确地表明资源的生命周期。

2.std::shared_ptr

std::shared_ptr是一种智能指针,可以记录有多少个shared_ptr共同指向一个对象,从而消除显式的调用delete,当引用计数变为0时,就会将对象自动删除。

但是,使用std::shared_ptr依然需要使用new

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

huixieqingchun

钟意作者

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

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

打赏作者

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

抵扣说明:

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

余额充值