枚举就是一一列举的意思,在C++语言中枚举类型是一些标识符的集合,从形式上看枚举类型就是用大括号将不同标识符名称放在一起。用枚举类型声明的变量,其变量的值只能取括号内的这些标识符
枚举类型的声明
枚举类型定义有两种声明形式:
(1)枚举类型定义的一般形式
enum 枚举类型名 {标识符列表}; 例如: enum weekday{Sunday,Monday,Tuesday,Thursday,Friday,Saturday};
enum 是定义枚举类型的关键字,weekday是新定义的类型名,大括号就是枚举类型变量应取的值。
(2)带赋值的枚举类型声明形式
enum 枚举类型名 { 标识符 [=整型常数], 标识符 [=整型常数], 标识符 [=整型常数], } 枚举变量; 例如: enum weekday{Sunday = 0,Monday = 1};
使用枚举类型的说明如下:
编译器默认将标识符自动附上整形常数。例如:
enum weekday{Sunday,Monday,Tuesday,wedesdayThursday,Friday,Saturday};
相当于:
enum weekday{Sunday=0,Monday=1,Tuesday=2,wedesday=3,Thursday=4,Friday=5,Saturday=6};
可以自行修改:
enum weekday{Sunday=2,Monday=1,Tuesday=3,wedesday=4,Thursday=0,Friday=6,Saturday,=5};
如果只是给前几个标识符赋整型常数,编译器会给后面标识符自动累加赋值,例如:
enum weekday{Sunday=7,Monday=1,Tuesday,wedesdayThursday,Friday,Saturday};
相当于:
enum weekday{Sunday=7,Monday=1,Tuesday=2,wedesday=3,Thursday=4,Friday=5,Saturday=6};
枚举类型变量
在声明了枚举类型之后,可以用它来定义变量。例如:
enum weekday{Sunday,Monday,Tuesday,wedesdayThursday,Friday,Saturday}; [enum] weekday myworkday;
myworkday 是weekday的变量。在c语言中,枚举类型名包括关键字enum,在C++中允许不写enum关键字
为枚举变量赋值
#include <iostream> using namespace std; int main() { enum weekday{Sunday,Monday,Tuesday,wedesday,Thursday,Friday,Saturday}; int a= 2,b=1; weekday day; day = (weekday)a; cout<<day<<endl; cout<<(weekday)(a-b)<<endl; cout<<(weekday)(Sunday+wedesday)<<endl; }