gpt4 book ai didi

C++/阿杜伊诺 : dynamic int array

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:25:34 25 4
gpt4 key购买 nike

我正在为 Arduino 编写类(class)。到目前为止一切顺利,但我现在有点卡住了...

我已经在我的类中声明了一个 int 数组

class myClass
{
public: MyClass(int size);
private:
int _intArray[];
};

当我初始化类 MyClass myClass1(5) 时,我需要数组看起来像这样 {0,0,0,0,0}。

我的问题:我需要做什么才能使数组包含“大小”数量的零?

MyClass::MyClass(int size)
{
//what goes here to dynamically initialize the array
for(int i=0; i < size; i++) _intArray[i] = 0;
}

编辑:跟进下面的各种回复,Arduino 不包含标准库,所以很遗憾 std::vector 不是一个选项

最佳答案

我写这篇文章时你的代码:

class myClass
{
public: MyClass(int size);
private:
int _intArray[];
};

_intArray 的声明不是有效的 C++:原始数组需要在编译时指定大小。

您可以改为使用 std::vector:

class myClass
{
public:
MyClass( int size )
: intArray_( size ) // Vector of given size with zero-valued elements.
{}

private:
std::vector<int> intArray_;
};

注意 1:一些编译器可能允许您的原始代码作为语言扩展,以支持“struct hack”(这是一种 C 技术,在 C++ 中不是必需的)。

注意 2:我已经更改了您的成员(member)的姓名。通常,名称开头的下划线可能会出现问题,因为它们可能与 C++ 实现中的名称冲突。

干杯,

关于C++/阿杜伊诺 : dynamic int array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4358975/

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