gpt4 book ai didi

c++ - 为什么我不能分配错误的枚举元素,但可以与错误的枚举元素进行比较?

转载 作者:可可西里 更新时间:2023-11-01 18:21:22 26 4
gpt4 key购买 nike

使用以下 C++ 定义:

enum EnumA {
EA_Element = 1
};

enum EnumB {
EB_Element = 10
};

下面的代码不会编译,只有这样才有意义:

EnumA variable;
variable = EB_Element; // won't compile

但是下面的代码编译通过了:

EnumA variable = EA_Element;
if( variable == EB_Element ) { //will compile
}

虽然它没有任何意义 - 比较不同的枚举,这样的代码很可能是错误的。

为什么这些看似相同的情况在 C++ 中的处理方式不同?

最佳答案

它会编译,因为“默认情况下,枚举被转换为整数以进行算术运算。” (来自:C++ 编程语言)

关于c++ - 为什么我不能分配错误的枚举元素,但可以与错误的枚举元素进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6592500/

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