2015-11-15 268 views
0

我想在另一个类的构造函数中初始化一个std ::数组的对象。看来聚合初始化应该在这里工作,但我无法弄清楚适当的语法。我如何去做这件事?在类的构造函数中初始化std ::类的数组

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

回答

4

你只需要一个额外的一对大括号:

B() : stuff({{1,2,3}}) {} 
      ^ ^

或者可以替换括号与括号:

B() : stuff {{1,2,3}} {} 
      ^ ^
相关问题