如何在创建对象时初始化数组?

时间:2011-04-16 20:52:39

标签: c++ arrays

我不确定如何将数组变量与对象一起使用。如何在创建对象时初始化数组。一个数组,它是对象的数据成员。

我希望使用初始化列表。

2 个答案:

答案 0 :(得分:4)

如果您的编译器支持它,您可以这样做:

struct Foo
{
     int n[5];
     Foo() :n{1,2,3,4,5} {}
};

很快,这将是标准的。 GCC现在支持它,我不确定其他编译器是做什么的。

答案 1 :(得分:2)

数组成员变量只能默认初始化,不能提供显式初始化值。

struct Foo {
  Foo() : bar() {}  // Default-initialize bar, for int this means initialize with 0
  int bar[10];
};

如果您还需要其他任何内容,则必须在构造函数体中进行分配。

struct Foo {
  Foo() : bar() {
    bar[3] = 1;
  }  
  int bar[10];
};