【发布时间】:2015-08-09 18:19:45
【问题描述】:
我发现(click here) 开关可以使用整数类型或“枚举类型”来控制C++中的表达式。
this article 中对“枚举”的一种解释是枚举类型“是使用一组自定义标识符(称为枚举数)作为可能值定义的类型”。
但是,对于 char、int、long、double 等类型,由于它们最多只使用 8 个字节,因此它最多包含 232 个可能的元素。那么所有这些可能的元素选择肯定是可排序的(使用常见的算术比较)。因此它们都是枚举类型。此外,这个论点也适用于任何其他类型。那么,什么类型不是枚举类型?
感谢那些能够解释清楚枚举类型的定义,并给出枚举类型和非枚举类型的具体例子.
提前致谢 =)
【问题讨论】:
-
你链接的文章没有说 switch 只能使用枚举类型。它表示整数或枚举类型,或者可以转换为任何一种的类类型。
-
"an integer or enumerated type" 不知道为什么你没有看到integral虽然里面写了很多次...
-
整数类型为
char、short、int、long、long long和bool。而枚举类型是由关键字enum或enum class定义的类型。 -
我的错。对此感到抱歉
-
...及其
unsigned变体...