在 class 构造函数中初始化 std::array 个 classes
Initialize std::array of classes in a class constructor
我正在尝试在另一个 class 的构造函数中初始化一个 std::array 个对象。似乎聚合初始化应该在这里工作,但我想不出合适的语法。我该怎么做?
class A {
const int a;
public:
A(int an_int) : a(an_int) {}
};
class B {
std::array<A,3> stuff;
public:
B() :
stuff({1,2,3}) // << How do I do this?
{}
};
int main() {
B b;
return 0;
}
您只需要一副额外的牙套:
B() : stuff({{1,2,3}}) {}
^ ^
或者您可以用大括号替换圆括号:
B() : stuff {{1,2,3}} {}
^ ^
我正在尝试在另一个 class 的构造函数中初始化一个 std::array 个对象。似乎聚合初始化应该在这里工作,但我想不出合适的语法。我该怎么做?
class A {
const int a;
public:
A(int an_int) : a(an_int) {}
};
class B {
std::array<A,3> stuff;
public:
B() :
stuff({1,2,3}) // << How do I do this?
{}
};
int main() {
B b;
return 0;
}
您只需要一副额外的牙套:
B() : stuff({{1,2,3}}) {}
^ ^
或者您可以用大括号替换圆括号:
B() : stuff {{1,2,3}} {}
^ ^