gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 02:55:09 25 4
gpt4 key购买 nike

鉴于以下情况:

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 仍将是一个聚合,因此您可以使用聚合初始化。

关于c++ - 如何将初始化列表与基类一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16656514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com