59、深拷贝与浅拷贝是怎么回事?

1) 浅复制 :只是拷贝了基本类型的数据,而引用类型数据,复制后也是会发生引用,我们把这种拷贝 叫做“(浅复制)浅拷贝”,换句话说,浅复制仅仅是指向被复制的内存地址,如果原地址中对象被改变 了,那么浅复制出来的对象也会相应改变。

深复制 :在计算机中开辟了一块新的内存地址用于存放复制的对象。

2) 在某些状况下,类内成员变量需要动态开辟堆内存,如果实行位拷贝,也就是把对象里的值完全复 制给另一个对象,如A=B。这时,如果B中有一个成员变量指针已经申请了内存,那A中的那个成员变量 也指向同一块内存。这就出现了问题:当B把内存释放了(如:析构),这时A内的指针就是野指针了, 出现运行错误。

原文地址:https://www.cnblogs.com/crbhf/p/14968136.html