在c++构造函数中初始化数组

Initialize an array inside Constructor in C++

本文关键字:初始化 数组 构造函数 c++      更新时间:2023-10-16

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

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

但是,我不能那样做。这需要在构造函数中完成。但是我不能使用上面相同的语法,因为它会在构造函数中创建一个新的数组,并且不会影响在类中定义的数组。最简单的方法是什么?

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

可以在构造函数成员初始化列表中初始化数组

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();
  };
// ^ 

使用c++ 11可以这样写:

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