deep copy 和shallow copy 都是用于对象之间的拷贝,如果对象没有其他对象的引用时,deep copy和shallow copy是一样的,但是如果有,如果只是用swallow copy,拷贝副本当中的对象引用和原来的对象是指向同一个对象的,即一块内存区域,因此,原对象和副本只要有一个当中的对象引用改变,另一个也被改变了。但是有时候我们不想这种情况发生,因此我们需要在拷贝时把引用对象一并拷贝,也就是说副本和原本是独立的,而这就是deep copy。
下面这个例子是来自
http://stackoverflow.com/questions/2657810/deep-copy-vs-shallow-copy
Shallow copy:
Some members of the copy may reference the same objects as the original:
拷贝的一些成员可能会有和原始对象引用到相同的对象:
class X
{
private:
int i;
int *pi;
public:
X()
: pi<
版权声明:本文为Andrewseu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。