默认的复制构造函数在 C++ 中执行浅拷贝还是深拷贝?
我真的很困惑 cpp 中的默认复制构造函数,因为它是浅复制还是深复制,就像我做 v2=v1;
时假设 v1={1,2,3 }
,现在如果我完成了 v2[0]=1;
它没有得到反射(reflect),但我听说它进行了浅拷贝,有人可以解释一下吗?
最佳答案
它也没有。它执行一个memberwise 拷贝。 IE。它使用复制构造函数复制类的所有成员。如果这些成员具有执行深拷贝的复制构造函数,那么您将获得深拷贝,如果他们执行浅拷贝,那么您将获得浅拷贝,或者他们可以完全做其他事情。
深拷贝和浅拷贝不是 C++ 的概念,相反,C++ 允许您根据需要进行深拷贝或浅拷贝。
关于c++ - cpp浅拷贝或深拷贝中的默认拷贝构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51406033/