一、枚举数据类型:
有时需要使变量具有限定的一组值,并可以通过名称来引用这些值。枚举就提供了这个功能。
在定义枚举时,实际上是在创建一个新的类型,所以它也称为枚举数据类型。
二、示例说明:
enum class Day {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday};
这条语句定义了枚举类型 Day, 这个类型的变量值只能是花括号中的值。如果把Day类型的变更值设置为不在花括号中的值,代码就不能编译。
花括号中的符号名称称为枚举成员。
默认情况下,每个枚举成员都自动定义为一个 int 类型的固定数值。
列表中的第一个名称是 Monday,值为 0,Tuesday 的值为1,依此类推, Sunday 的值为 6。
默认情况下,每个枚举成员的值都比前面一个枚举成员的值大 1, 第一个枚举成员的值默认是 0。
赋予枚举的隐式值也可以从另一个整数值开始。
下面的语句使得 Day 枚举成员的值为 1~7:
enum class Day {Monday = 1, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday};
Monday 被显式指定为1, 后续枚举成员都比前一个枚举成员大1。
可以为枚举成员赋任何整数值,并且并不是只能对前几个枚举成员赋值。
例如:下面的定义使工作日的数值为 3~7,Saturday 的值为1, Sunday 的值为 2:
enum class Day {Monday = 3, Tuesday, Wednesday, Thursday, Friday, Saturday = 1, Sunday};
枚举成员不一定有唯一值。
enum class Day {Monday = 1, Mon = 1, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday};
可以根据以前的枚举成员定义新的枚举成员值。
枚举成员可以是包含默认类型 int 在内的任何整数类型。也可以给所有的枚举成员显式赋值。
如果给枚举类型使用 enum class ,代码就不容易出错。强类型的 enum class 是比旧式的 enum 类型更好的选择。