1.定义
enum <类型名> {<枚举常量表>};
2.说明
关键字enum——指明其后的标识符是一个枚举类型的名字。
枚举常量表——由枚举常量构成。枚举常量只能以标识符形式表示,而不能是整型、字符型等文字常量。
非法定义:
enum letter_set {'a','d','F','s','T'}; //枚举常量不能是字符常量
enum year_set{2000,2001,2002,2003,2004,2005}; //枚举常量不能是整型常量
合法定义:
enum color_set1 {RED, BLUE, WHITE, BLACK}; // 定义枚举类型color_set1
定义枚举类型之后,就可以定义该枚举类型的变量
color_set1 color1, color2;
亦可类型与变量同时定义(甚至类型名可省)
enum {Sun,Mon,Tue,Wed,Thu,Fri,Sat} weekday1, weekday2;
3.优点
增加程序的可读性。
4.用法
设有定义:
enum color_set1 {RED, BLUE, WHITE, BLACK} color1, color2;
enum color_set2 { GREEN, RED, YELLOW, WHITE} color3, color4;
则允许的赋值操作如下:
color3=RED; //将枚举常量值赋给枚举变量
color4=color3; //相同类型的枚举变量赋值,color4的值为RED
int i=color3; //将枚举变量赋给整型变量,i的值为1
int j=GREEN; //将枚举常量赋给整型变量,j的值为0
允许的关系运算有:==、<、>、<=、>=、!=等,例如:
//比较同类型枚举变量color3,color4是否相等
if (color3==color4) cout<<"相等";
//输出的是变量color3与WHITE的比较结果,结果为1
cout<< color3<WHITE;
枚举变量可以直接输出,输出的是变量的整数值。例如:
cout<< color3; //输出的是color3的整数值,即RED的整数值1
5.注意事项
枚举变量的输入输出一般都采用switch语句将其转换为字符或字符串
例如
enum color_set {red,yellow,blue,white,black}; //声明枚举类型color_set
color_set color;//定义枚举变量colorswitch(color){
case red: cout<<setw(15)<<"red"; break;
case yellow:cout<<setw(15)<<"yellow";break;
case blue: cout<<setw(15)<<"blue"; break;
case white: cout<<setw(15)<<"white"; break;
case black: cout<<setw(15)<<"black"; break;}
出处:菜鸟教程