C++ 枚举
枚举
1 | enum spectrum {red, orange, yellow, green, blue, violet, indigo, ultraviolet}; |
为了获得最大限度的可移植性,应将把非 enum 值赋给 enum 变量视为错误
枚举量是整型,可被提升为 int 类型,但 int 类型不能自动转换为枚举类型
1 | int color = blue; // valid |
可以显示设置枚举量的值
1 | enum bigstep {first, second = 100, third}; // 0, 100, 101 |
如果 int 值有效,可以强制转换,赋给枚举变量
1 | band = spectrum(3); |
使用强制转换,可以将取值范围中的任何整数值赋给枚举变量,即使这个值不是枚举值
1 | enum bits {on3 = 1, two = 2, four = 4, eight = 8}; |
取值范围定义如下,上限是大于最大值的最小的 2 的幂减 1,下限是,如果最小值不小于 0,则取值范围下限是 0,否则,为小于最小值的最大的 2 的幂次
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.