1、enum关键字
enum是C++中的一个关键字,enum叫枚举数据类型,枚举数据类型描述的是一组数据的集合,枚举型是预处理指令#define
的替代,枚举和宏定义其实非常类似,宏在预处理阶段将名字替换成对应的值,枚举在编译阶段将名字替换成对应的值,
1、定义枚举
枚举数据(枚举常量)是一些特定的标识符,标识符代表什么含义,完全由程序员决定。数据枚举的顺序规定了枚举数据的序号,默认从0
开始,依次递增。
1)先声明后定义
#includeusing namespace std;enum RGB{ R,G,B}; int main() { enum RGB rgb=G; cout << rgb << endl; return 0;}
2)同时声明和定义
#includeusing namespace std;int main() { enum RGB { R,G,B } rgb; rgb=B; cout << rgb << endl; return 0;}
3)直接定义
#includeusing namespace std;int main() { enum { R,G,B } rgb; rgb=B; cout << rgb << endl; return 0;}
枚举值默认是从0
开始,也可以显示指定。
例如,
#includeusing namespace std;int main() { enum { R=2,G,B } rgb; rgb=B; cout << rgb << endl; return 0;}
2、枚举使用示例
定义星期枚举类型,并将初始值指定为1
。
例如,
#includeusing namespace std;/* 定义枚举类型 */enum DAY { MON=1,TUE,WED,THU,FRI,SAT,SUN};int main(){ /* 使用枚举类型声明变量,再对枚举型变量赋值 */ enum DAY yesterday, today, tomorrow; yesterday = MON; today = TUE; tomorrow = WED; cout << yesterday << " " << today << " " << tomorrow << endl; return 0;}
3、枚举转换
枚举类型和int
类型可以转换,我们可以转将int
类型转换成枚举类型。
例如,
#includeusing namespace std;enum DAY { MON=1, TUE, WED, THU, FRI, SAT, SUN };int main(){ enum DAY yesterday,today,tomorrow; yesterday = TUE; today = (enum DAY) (yesterday + 1);//类型转换 tomorrow = (enum DAY) 30; //类型转换 cout << yesterday << " " << today << " " << tomorrow << endl; return 0;}