【发布时间】:2022-10-25 16:43:05
【问题描述】:
我想通过列表初始化(https://en.cppreference.com/w/cpp/language/list_initialization)初始化一个作为 A 子类的 B 类
但是,它不是这样工作的:
struct A {
int x;
};
struct B : public A {
};
int main()
{
A a{ 1 }; // compiles
B b{ 2 }; // doesn't compile
}
有没有办法通过列表初始化来初始化 B 的实例?
本质上,我想在不声明任何构造函数的情况下初始化 B 的实例。
【问题讨论】:
-
是否要将
B保留为聚合? -
@NathanOliver 我更喜欢这样。本质上,我想用值初始化子类而不声明任何构造函数。我更新了问题以使其更清楚。
-
"有没有办法通过列表初始化来初始化 B 的实例?" 使用 c++17。
标签: c++ inheritance compiler-errors aggregate list-initialization