一种通过创建临时空间解决写时拷贝问题的方法
指路:模拟实现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 =