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

标签 c++ deep-copy shallow-copy

默认的复制构造函数在 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/

相关文章:

python - 类型错误 : cannot deepcopy this pattern object

python - Python 类实例具有浅连接的问题

python - 循环 Pandas 对象列表表现出奇怪的行为

c++ - C++中不同字符类型的使用

c++ - 如何将 boost::asio::tcp::io_stream 附加到我的 io_service?

android - cc1plus : error: -Werror=literal-suffix: no option -Wliteral-suffix

c - 深复制一个结构到另一个

c++ - 将一个对象数据复制到另一个相同类型的对象c++

c++ - 很难从 C++ boost 库中获取 barycentric_rational 以按照我需要的方式工作

javascript - 从浅复制对象中删除属性