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

How do I initialize an array when an object is created?

本文关键字:初始化 数组 创建对象      更新时间:2023-10-16

我不确定如何使用数组变量与对象。创建对象时如何初始化数组。作为对象的数据成员的数组。

我希望使用一个初始化列表

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

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

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

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

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];
};