枚举可以创建符号常量,可以代替 const。示例:
enum spectrum //新类型名称{red, //符号常量,0orange, //符号常量,1yellow //符号常量,2};spectrum band;//声明这种类型的变量
枚举赋值受限制,例如上面代码只能有 3 个可能的值,否则编译器报错。
如果只使用常量,而不创建枚举类型的变量:
enum{red, //符号常量,0orange, //符号常量,1yellow //符号常量,2};
4.6.1 设置枚举量的值
示例:
enum bits{one = 1, //显式设置枚举量的值two = 2};enum bigstep{first, //0second = 100, //100third //101};
4.6.2 枚举的取值范围
C++现在可以通过强制类型转换,增加了可以赋给枚举变量的和法治。每个枚举都有取值范围,通过强制类型转换,可以将取值范围中的任何整数值赋给枚举变量,即使这个值不是枚举值。例如:
enum bits{one = 1,two = 2,four = 4,eight = 8};bits myflag = bits(6); //合法
C++11增加了作用域内枚举(scoped enumeration)。第10章的“类作用域”将介绍这种枚举。
