【c++编程思想学习笔记】解决浅拷贝的两种方法:(深拷贝)(引用计数+写拷贝)

当类中含有指针类型的数据成员,使用默认的拷贝构造函数或者赋值操作,将导致浅拷贝的问题

解决办法:

1:使用深拷贝:实现拷贝构造函数以及赋值操作时,为指针开辟新的空间

2:引用计数+写拷贝
引用计数:当对象需要大量的内存或者过高的初始化,为了避免这种拷贝。
使一块存储单元具有智能,它知道有多少对象指向它。拷贝构造函数或赋值运算意味着把另外的指针指向现在的存储单元并增加计数。消除意味着减少引用计数,如果引用计数为0则意味销毁这个对象
写拷贝:因为不止一个对象使用这一块内存,当修改自己的时,也等于修改了他人的。在向这块存储单元写之前,应该确信没有其他人使用它。如果引用计数大于1,在写之前必须拷贝这块存储单元,这样就不会影响他人了














  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值