枚举类型(enumeration)使我们可以将一组整型常量组织在一起。和类一样, 每个枚举类型定义了一种新的类型,枚举属于字面值常量类型。C++包含两种枚举: 限定作用域和不限定作用域。C++11新标准引入了限定作用域的枚举类型(scoped enumeration)。定义限定作用域的枚举类型的一般形式是: 首先是关键字enum class, 随后是枚举类型名字以及用花括号括起来以逗号分隔的枚举成员(enumerator)列表, 最后是一个分号:
enum class open_modes(input, output, append);
定义了一个名为open_modes的枚举类型,它包含三个枚举成员: input、output、append。
定义不限定作用域的枚举类型(unscoped enumeration)时省略关键字class,枚举类型的名字是可选的:
enum color {red, yellow, green}; //不限定作用域的枚举类型
// 未命名, 不限定作用域的枚举类型
enum {floatPrec = 6, doublePrec = 10, double_doublePrec = 10}
枚举成员
enum color{red, yellow, green}; // 不限定作用域的枚举类型
enum stoplight{red, yellow, green}; // 错误: 重复定义了枚举成员
enum class peppers{red, yellow, green}; // 正确: 枚举成员被隐藏了
枚举成员的名字遵循常规的作用域准则, 并且在枚举类型的作用域外是不可访问的。



