在C++中,深浅拷贝的区别在于是否真正的得到了复制体,而不是单纯的引用实则并没有拷贝成功。
浅拷贝:其实就是单纯的引用了拷贝对象,并没有成功得到复制体。
当用户没有自定义拷贝函数时,调用的拷贝函数是系统给的默认拷贝函数。这里的默认拷贝函数就是浅拷贝——只是简单的复制了类成员变量。如果类的成员变量中包含了指针的情况,此时的拷贝只是定义了一个指针,这个指针的值引用了拷贝对象的指针值,即这里的两个指针共同指向了一片空间,所以可能会出现野指针的问题。
深拷贝:不但对指针进行了额拷贝,而且对指针指向的内容也进行了拷贝,经过拷贝之后的指针分别指向了不同的两片空间。