gpt4 book ai didi

c++ - C++ 数组是否可复制构造?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:56:45 28 4
gpt4 key购买 nike

此代码在 C++ 中有效吗?

class MyClass    
{
public:
Class2 array [100];
Myclass (const Myclass& other) : array (other.array) {}
};

如果不是,获得相同结果的最佳方法是什么?

最佳答案

在 C++ 中,数组不可显式复制(不可复制构造,不可赋值)。您的代码将无法编译。

然而,在 C++ 中,数组在包装到类中时变得可间接复制。这意味着,如果您删除构造函数定义,则编译器为您的类 MyClass 生成的隐式复制构造函数实际上将通过一些您无法直接使用的“神奇”方式成功复制数组。

但是如果出于某种原因你必须显式定义复制构造函数,那么你的选择仅限于让数组默认初始化,然后通过 std::copy< 显式复制构造函数主体中的数据 或类似的东西。或者你可以简单地重新包装你的数组,这实际上是已经建议的 std::array 可以为你做的。

关于c++ - C++ 数组是否可复制构造?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17515694/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com