枚举类型(enumeration)是 C++ 中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。
定义格式:枚举类型的定义格式为:
enum 枚举类型(可省略)
{
枚举常量,
};
- 默认首个枚举常量的值为0;
- 所有枚举常量均为整数;
- 默认下一个枚举常量的值是在上一个枚举常量的基础上+1;
- 可以不为枚举常量指定值,此时所有枚举常量的值不重复,下一个枚举常量的值是在上一个枚举常量的基础上+1;
- 可以为枚举常量指定值,此时枚举常量可以有重复,除已有指定值以外的剩余枚举常量,下一个枚举常量的值是在上一个枚举常量的基础上+1;
- 枚举常量之间以逗号分隔;
除了定义枚举常量,也可以同时定义枚举变量:
enum 枚举类型(可省略)
{
枚举常量1,
枚举常量2,
枚举常量3
}
枚举变量1,
枚举变量2,
枚举变量3;
举例:
enum WEEK
{
week_useless = 0,
monday,
tuesday,
wednesday,
thursday,
friday,
saturday,
sunday
}
week1,
week2;
- 枚举变量只能参与赋值和关系运算以及输出操作,参与运算时用其本身的整数值。
- 允许的赋值操作:
- 允许的关系运算:==、<、>、<=、>=、!=等。
- 枚举变量可以直接输出,但不能直接输入。如:cout >>week1; //非法
- 不能直接将常量赋给枚举变量。如: week1=1; //非法
- 不同类型的枚举变量之间不能相互赋值。
- 枚举变量的输入输出一般都采用switch语句将其转换为字符或字符串;枚举类型数据的其他处理也往往应用switch语句,以保证程序的合法性和可读性。