深拷贝和浅拷贝

浅拷贝通常是编译器提供的默认拷贝构造函数和默认赋值构造函数。

当类中有指针变量的时候,比如把a赋值给b。

b = a;

默认的赋值函数会导致b原有的内存没有释放,出现内存泄漏。

第二个问题是,b和a的指针,指向了同一块内存,不管是改动a,还是改动b,都会影响另一方。

第三是,当对象析构的时候,指针变量会被释放俩次(指向同一块内存区域)

在这种情况下,我们需要自己去编写拷贝构造函数和赋值构造函数

也就是深拷贝,我们为每一个对象都分配自己的内存空间,特别是有指针成员的时候,为指针成员重新申请一块内存空间(堆区)。

//---补充一个实例----

原文地址:https://www.cnblogs.com/EvansPudding/p/12566403.html