关于“深拷贝”,下列说法正确的是:
深拷贝和浅拷贝都是指针或引用类型数据的复制方式。
浅拷贝,又称为地址拷贝,只是复制了指针或引用的地址,多个对象指向同一块内存空间,这样在一个对象中对这个内存空间进行改变时,其余的对象也会受到影响。例如,当我们定义一个类并使用浅拷贝时,如果两个类对象有指针成员,则它们将共享相同的地址,当其中一个对象释放了这段内存,另一个对象中的指针成员将指向已释放的内存,从而导致错误。因此,在包含指针或动态内存分配的类中,使用浅拷贝可能会导致不可预期的结果。
深拷贝,是指将指针或引用所指向的实际内容全部复制一份到新的内存地址中,多个对象之间的指针指向不同的内存地址,每个对象都有自己的一份数据拷贝,互相之间不会影响。例如,在包含指针或动态内存分配的类中,使用深拷贝可以确保每个对象都有自己的一份内存,互相之间不会发生冲突。