文章目录
概述
枚举类型的定义:枚举类型(enumeration)是 C++ 中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。如果一个变量有几种可能的值,可以定义为枚举类型(enumeration),所谓枚举就是将枚举变量能取得值一一列举出来。枚举类型定义完后,将会为每个枚举元素分配一个整型值,默认从0开始,逐个加1。自定义赋值整型值的情况可自行查资料。
枚举类型的定义格式为:
enum <类型名> {<枚举常量表>};
格式说明:
- 关键字enum——指明其后的标识符是一个枚举类型的名字。
- 枚举常量表——由枚举常量构成。“枚举常量"或称"枚举成员”,是以标识符形式表示的整型量,表示枚举类型的取值。枚举常量表列出枚举类型的所有取值,各枚举常量之间以","间隔,且必须各不相同。取值类型与条件表达式相同。
总结的需要注意的地方(不足之处希望读者在留言处指出)
(一)声明的方式
(1)枚举类型的定义与枚举变量声明分开
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
enum color_set {
red,yellow,blue,white,black}; //定义枚举类型color_set
color_set color;//声明枚举变量color
return 0;
}
(2)枚举类型的定义与枚举变量声明同时进行
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
enum color_set {
red,yellow,blue,white,black}color;
return 0;
}
该语句还可以省略类型名
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
enum {
red,yellow,blue,white,black}color;
return 0;
}
(3)用typedef先将枚举类型定义为别名,再利用别名进行枚举变量的声明
typedef enum color_set{
red,yellow,blue,white,black} color_set; //方式一
typedef enum {
red,yellow,blue,white,black} color_set; //方式二
(二)赋值
错误:
#include<iostream>
#include<iomanip>
#include<windows.h>
using namespace std;
int main(){
enum color_set {
red,yellow,blue,white,black}; //声明枚举类型color_set
color_set color=0; //枚举变量的赋值必须以枚举常量赋值(字符常量),不能是枚举成员的默认值,否则报错
cout<<color<<endl;
return 0;
}
输出:
此处涉及枚举类型与整形的转换,一般来说,枚举类型可以隐式的转换为int型,int型不能转换为枚举类型
比如:
正确:
#include<iostream>
#include<iomanip>
#include<windows.h>
using namespace std;
int main()