以构造函数语法初始化结构的数组

问题描述 投票:0回答:1

当我尝试设置light.arr {0}时,使用结构时会给我一些错误:

struct info_obj
    {
        int arr[];
    };
    class device
    {
    private:
        info_obj light;

    public:
        device() : light.arr{0} {}
    ...

正确的语法是什么?另外,如何使数组完全为空(不将for循环中的每个值初始化为零)?

c++ class oop constructor arduino
1个回答
0
投票

数组的维数不是通过初始化给出的;它是数组type的一部分。

这意味着:

  • 您不能在这样的构造函数的成员初始化列表中提供它,并且
  • 您不能从数组的声明中忽略它。
  • 确实,某些编译器(包括您的编译器)支持称为flexible array member

的扩展,但是它们不是标准的,这不是如何使用它们。

如果要具有运行时范围的数组,请改用std::vector

是,Arduino具有std::vector

© www.soinside.com 2019 - 2024. All rights reserved.