gpt4 book ai didi

c++ - 如何将数组传递给构造函数并保存在类变量中

转载 作者:行者123 更新时间:2023-11-30 04:04:32 25 4
gpt4 key购买 nike

我有以下卫星代码和平

class Satellite
{
private:
const static int CHIP_SEQ_LENGTH = 1023;
bool chipSequence[CHIP_SEQ_LENGTH];
int id;

public:
Satellite(int id, bool chipSequence[])
{
this->id = id;
this->chipSequence = chipSequence;
};
}

我在

处遇到错误
this->chipSequence = chipSequence;

具有以下描述:

Expression must be a modifiable lvalue.

现在我的问题是,如何将构造函数传递的数组存储到类变量中?

最佳答案

内置数组是讨厌的东西,其行为与大多数 C++ 对象不同。特别是,它们不可分配。

在现代 C++ 中,我可能会使用 std::array<bool, CHIP_SEQ_LENGTH> .这是一个合适的可复制对象类型。

如果您还停留在过去,您可以制作自己的可复制包装器类型:

struct ChipSequence {
bool bits[CHIP_SEQ_LENGTH];
};

或显式复制数据:

std::copy(chipSequence, chipSequence+CHIP_SEQ_LENGTH, this->chipSequence);

还有像std::bitset这样的替代品或 std::vector<bool> ,如果您不特别需要 bool 的数组,它会打包这些位以使用更少的内存。 .

关于c++ - 如何将数组传递给构造函数并保存在类变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23700689/

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