解法:
浅拷贝会将对象所有成员的值拷贝到另一个对象里。除了拷贝所有成员的值,深拷贝还会进一步拷贝所有对象指针。
下面是浅拷贝和深拷贝的例子。
struct Test
{
char * ptr;
}
void shallow_copy(Test& src,Test& dest)
{
dest.ptr = src.ptr;
}
void deep_copy(Test& src, Test& dest)
{
dest.ptr = (char*)malloc(strlen(src.ptr) + 1);
strcpy(dest.ptr, src.ptr);
}