关于C++ 智能指针的一点认识

背景:

默认的c++拷贝与赋值构造函数实现的是值拷贝传递。当类的数据成员为指向堆上的指针时,值拷贝会使多个类的指针指向同一块内存。当其中一个类释放这块内存时,会照成其他类的这个指针空悬,从而引来风险。

智能指针是用来解决这类问题的方法。它最终的目的是让多份指针安全地指向同一块内存。要做到这一点,这块被指向的内存只能在最后一个指针所在的类被析构时,才被释放。

认识:

网上的资料显示智能指针有引用辅助类和使用句柄类这两种实现方法。但从本质上看,都是实现:

1、使得智能指针这个类拥有与指针相似的使用方法。(通过重载*,->等符号可以实现)

2、需要借助一块堆上的内存来存放一个计数变量。

3、当计算变量值为0时,释放业务的内存和计数变量的内存

 

转载于:https://www.cnblogs.com/withmybag/p/4085660.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值