在C ++中的Constructor中初始化一个数组

时间:2014-08-25 14:13:53

标签: c++ arrays

我在一个类中定义了一个数组。我想用一些预先确定的值来初始化数组。如果我只能在定义中做到这一点,那么它将更容易,因为我会使用

class A{
    int array[7]={2,3,4,1,6,5,4};
}

但是,我无法做到这一点。这个,我需要在Constructor里面做。但我不能使用与在构造函数中创建新数组相同的上述语法,并且不会影响类中定义的数组。什么是最简单的方法呢?

class A{
    public:
    int array[7];
    A::A(){

    }
}

2 个答案:

答案 0 :(得分:5)

您可以在构造函数成员初始值设定项列表中初始化数组

A::A() : array{2,3,4,1,6,5,4} {

}

或旧语法

A::A() : array({2,3,4,1,6,5,4}) {

}

您的样本应该使用支持最新标准的编译器进行编译。


另请注意,您的班级声明缺少一个尾随分号

class A{
    public:
    int array[7];
    A();
  };
// ^ 

答案 1 :(得分:0)

使用C ++ 11,您可以写下:

class C
{
    int x[4];
public:
    C() : x{0,1,2,3}
    {
        // Ctor
    }
};