1
考慮以下幾點:如何在基類中使用初始化列表?
struct A
{
int foo;
int bar;
};
struct B : public A
{
int baz;
};
我將如何構建一個初始化列表還建在A
元素的B
?以下似乎沒有工作,但我正在尋找類似:
B my_b{{1, 2}, 3}; // foo = 1, bar = 2, baz = 3
考慮以下幾點:如何在基類中使用初始化列表?
struct A
{
int foo;
int bar;
};
struct B : public A
{
int baz;
};
我將如何構建一個初始化列表還建在A
元素的B
?以下似乎沒有工作,但我正在尋找類似:
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
仍然是一個聚合,因此您可以使用聚合初始化。
是的,我錯過了我的代碼中的東西。固定。 – fbrereto
@fbrereto:看我的編輯。 –