深拷贝和浅拷贝

  对于含指针的类,当编译器调用默认的拷贝构造函数时,会将对象的指针所指向的地址拷贝给另一个对象的指针所指向的地址,这个时候就发生了浅拷贝。浅拷贝所存在的问题是:如果只是指针指向的地址进行拷贝,那么两个指针将指向同一片内存空间,当其中一个对象被销毁时,对应的析构函数会delete掉这片内存,那么另一个对象的指针就会成为野指针,如果这时另一个对象也进行了析构操作,则对野指针进行delete操作,则会发生一个严重的问题:内存泄漏。

  深拷贝是将指针所指的值一位一位的拷贝到目标对象的内存里面,即使发生析构,也不会影响到另一个对象的指针所指向的内存单元中去,它们的指针与内存空间时完全独立的。

原文地址:https://www.cnblogs.com/leoncumt/p/10428883.html