1.假如类的成员变量有一个是指针(假如名字为p),另外类有两个对象x 、y。现在要把x对象copy给y对象,对于这个指针有两中策略:
a、简单的把x的p赋值给y的p :y . p = x . p ;
那么,y的p和x的p的值是一样的,即它们指向同一个地方。
考虑这种情况:p指向从内存中得到的内存,而析构函数中释放申请的内存。
那么,在x和y的析构函数中都要释放内存,而这个内存是同一个。也就是说:同一块内存被释放两次,将发生错误。
b. 这时候就需要深copy,在遇到指针的时候不是简单的复制指针,而是分配一块内存。然后,把x的p指向的内存复制给y的p指向的内存。