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

本文介绍了C++11/14标准库中的智能指针,如`std::shared_ptr`, `std::unique_ptr`和`std::weak_ptr`,以及它们如何通过引用计数自动管理内存,防止内存泄漏。`std::shared_ptr`用于共享所有权,`std::unique_ptr`确保独占所有权,而`std::weak_ptr`则解决循环引用问题。" 130161299,17771540,Java进程与线程详解,"['Java', 'JVM', '开发语言', '多线程', '并发编程']

总第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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

huixieqingchun

钟意作者

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

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

打赏作者

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

抵扣说明:

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

余额充值