浅拷贝就是平时使用的“=”赋值。深层的意思就是 把一个指针指向同一块内存,默认的拷贝构造函数就是这样操作的。
深拷贝则是指在堆区根据内容大小重新开辟一块内存,如 new 操作,交给这个指针,要想深拷贝就要自己定义一个拷贝构造函数,在堆里面new 一个空间。
浅拷贝容易在自身析构后,对复制对象析构造时成非法访问内存,因为内存已经被释放了。
深拷贝则是相当于两个不同的内存空间存的一样的数据。相互不会影响彼此。如图第一次使用系统默认的拷贝构造函数,在析构时发生崩溃。当自己定义了拷贝构造函数则一切正常。


网友评论