<CPP> string类写时拷贝

一种通过创建临时空间解决写时拷贝问题的方法

指路:模拟实现string类。地址:https://blog.csdn.net/MPF1230/article/details/104059562

源代码获取:
https://github.com/akh5/C-/blob/master/STL/copyOnWrite.cpp

由于浅拷贝多个对象共用一个资源,导致其中一个对象修改其内容时,会导致其他对象也会进行相应修改。
在这里插入图片描述
    如果当前s1对象将 s1[0] 元素改为“A”,则s2,s3的0号元素也将改为"A"

为了解决这种问题,我们需要新建一个临时资源,将s1指向一个临时资源,在临时资源内修改,s1就与s2,s3独立开来。
在这里插入图片描述

namespace my
{
   
	class string
	{
   
	public:
		string(char* str = "")
			:_pCount(new int(1))
		{
   
			if (nullptr == str)
				str = 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值