gpt4 book ai didi

c++ - 将枚举(在结构内声明)值分配给结构内相同枚举类型的变量

转载 作者:太空宇宙 更新时间:2023-11-04 03:46:53 25 4
gpt4 key购买 nike

我有以下类型的结构

struct enumStruct
{
enum Number
{
zero = 0,
one = 1
};

Number t;

union
{
/* t = 0 */
some_struct_zero zero;
/* t = 1 */
some_struct_one one;
} un;
} v_enumStruct;

我可以像下面那样给 v_enumStruct.t 赋值吗?

v_enumStruct.t = v_enumStruct.zero;//Option 1

此外,下面的似乎不起作用

v_enumStruct.t = zero; //Option 2 - zero is mistaken as an unavailable variable name

最佳答案

1) zero 不是struct 的成员。 2) struct 中的enum 没有声明任何成员。它可以在任何地方声明。枚举成员是命名常量,它们不是变量,并且 3) Number 需要 enum 限定符:

    struct enumStruct
{
enum Number
{
zero = 0,
one = 1
};
enum Number t;

union
{
/* t = 0 */
some_struct_zero zero;
/* t = 1 */
some_struct_one one;
} un;

} v_enumStruct;

您最好将 enum Number { ..}; 移到 struct 之外,因为它在结构内部没有任何作用。现在您应该可以分配:

v_enumStruct.t = zero; 

关于c++ - 将枚举(在结构内声明)值分配给结构内相同枚举类型的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23606516/

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