cpp浅或深拷贝中的默认构造函数?

Rob*_*na 1 c++ deep-copy shallow-copy

默认的拷贝构造函数在C++中是执行浅拷贝还是深拷贝?

我真的很困惑cpp中的默认复制构造函数,因为它执行浅拷贝或深拷贝,就像我v2=v1;想的那样v1={1,2,3},现在如果我已经完成v2[0]=1;它没有得到反映但我听说它是​​浅拷贝,有人可以解释一下吗?

joh*_*ohn 8

它也没有.它做成员副本.也就是说,它使用副本构造函数复制类的所有成员.如果这些成员具有执行深层复制的复制构造函数,那么您将获得深层复制,如果它们执行浅复制,那么您将获得浅拷贝,或者他们可以完全执行其他操作.

深层复制和浅层复制不是C++概念,而是C++允许您根据需要执行深层或浅层复制.

  • 请注意,这意味着如果您的类包含一个指针,则只复制指针和指针。您现在有两个对象指向同一事物。根据这个指向对象的所有权,这可能很糟糕。 (2认同)