深浅拷贝
get_it_started
这个作者很懒,什么都没留下…
展开
-
String类 深浅拷贝的传统写法和现代写法
浅拷贝也称值拷贝,在进行赋值时增加了一个指针,且该指针与原指针指向了同一内存空间,那释放这一空间,会导致其他对象所使用的空间也被释放,即程序会调用两次析构函数,同一块空间会被析构两次,结果是程序会出错、崩溃。 代码如下: #define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> using namespace std; //Str...原创 2018-04-19 15:01:07 · 225 阅读 · 0 评论 -
引用计数写实拷贝
首先要了解的是计数写实拷贝是在浅拷贝的基础上进行的。 什么是浅拷贝?用一张图来解释 计数写实拷贝是通过设置计数器Pcount来解决: Pcount的初始值为0,s1指向空间时Pcount+1,即Pcount=1,s2拷贝s1时,Pcount再+1,即Pcount=2;进行析构时,- -Pcount,当Pcount的值为0时再进行析构。这样解决了浅拷贝中重复析构同一空间的问题。 实现计数...原创 2018-04-20 19:21:01 · 167 阅读 · 0 评论