C++ 如何将初始化列表与基类一起使用?

C++ 如何将初始化列表与基类一起使用?,c++,c++11,inheritance,constructor,initialization-list,C++,C++11,Inheritance,Constructor,Initialization List,鉴于以下情况: struct A { int foo; int bar; }; struct B : public A { int baz; }; 我如何用一个初始化列表构造一个B,该列表也构造a中的元素?以下内容似乎不起作用,但我正在寻找类似的内容: B my_b{{1, 2}, 3}; // foo = 1, bar = 2, baz = 3 如果不添加显式构造函数并亲自完成大部分工作,则无法完成此任务: struct B : public A { B(co

鉴于以下情况:

struct A
{
    int foo;
    int bar;
};

struct B : public A
{
    int baz;
};
我如何用一个初始化列表构造一个
B
,该列表也构造
a
中的元素?以下内容似乎不起作用,但我正在寻找类似的内容:

B my_b{{1, 2}, 3}; // foo = 1, bar = 2, baz = 3

如果不添加显式构造函数并亲自完成大部分工作,则无法完成此任务:

struct B : public A
{
  B(const A &a, int _baz) : A{a}, baz{_baz} {}
  int baz;
};

B my_b{{1, 2}, 3};
您必须使该容器与
B
的成员保持同步

如果您使用了包含而不是继承,那么
B
仍然是一个聚合,因此您可以使用聚合初始化