我在一个类中定义了一个数组。我想用一些预先确定的值来初始化数组。如果我只能在定义中做到这一点,那么它将更容易,因为我会使用
class A{
int array[7]={2,3,4,1,6,5,4};
}
但是,我无法做到这一点。这个,我需要在Constructor里面做。但我不能使用与在构造函数中创建新数组相同的上述语法,并且不会影响类中定义的数组。什么是最简单的方法呢?
class A{
public:
int array[7];
A::A(){
}
}
答案 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
}
};