【发布时间】:2018-08-04 20:02:15
【问题描述】:
目前,我在联合中有一个结构。例如,
Struct foo{
Union u{
Struct s1{
int i1;
} ss1;
Struct s2{
int i2;
} ss2;
} wrap;
};
所以当我想初始化联合时,我尝试这样做。
foo f = {};
f.u.ss1 = {
.i1 = 0;
}
但错误显示与 operator = 不匹配(操作数类型和大括号括起来的初始值设定项列表)。
那么初始化的正确方法是什么?提前致谢。
【问题讨论】:
-
f.wrap.ss1.i1 = 0?一旦您修复了 other 错误以使其构建(例如struct和union的大写字母)。 -
发布真实代码 - 像
Struct这样的东西不是 C++。 -
@Someprogrammerdude 对不起,我打错了,应该是 ss1。但是,在我的真实代码中,struct s1中有多个变量,所以单纯使用赋值是行不通的。
-
f.wrap.ss1 = {0};添加成员和对应的初始化器来品尝。