我有下一个结构:
struct B
{
int a;
int b;
};
struct D: public B
{
int c;
};
我想在编译时初始化结构 D 的一些变量,就像我初始化结构 B 一样:
B b1 = { value_of_a, value_of_b };
我尝试用下面的方法来做,但它没有编译:
D d1 = { { value_of_a, value_of_b } , value_of_c };
D d2 = { value_of_a, value_of_b , value_of_c };
如果我将结构更改为:
struct D
{
B bb;
int c;
};
它使用“d1”和“d2”初始化进行编译。
那么,问题是如何初始化派生结构? 如果现在有初始化派生结构的规则,原因是什么?
谢谢。
最佳答案
派生自 B
的 D
不是聚合(因为它有一个基类),因此您不能使用聚合初始化语法对其进行初始化。您需要使用构造函数和初始化列表。
关于c++ - 在C++的编译时初始化派生结构类型的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10564591/