【C++】string类浅拷贝的解决方式
1.浅拷贝对内存地址的复制,让目标对象指针和源对象指向同一片内存空间,最终在释放的时候造成了多次释放导致程序崩溃如果类中设计到资源管理时,用户必须要显式实现拷贝构造函数以及赋值运算符重载,因为编译器默认是按照浅拷贝的方式生成的 2.深拷贝让每个对象都独立拥有自己的资源—即当发生拷贝构造或赋值时,让每个对象管理自己的资源即可 3.写时拷贝:浅拷贝+引用计数一旦s2要将空间中的内容改变,那么就深拷贝一份给s2,然后在改变s2中的内容,s1中的引用计数-1
复制链接