C++中枚举类型是unsigned int 类型的集合,其中的常量称为枚举数,通常这些常量是相关的,而且有特定的顺序。要定义一个枚举类型需要使用关键词enum,具体用法是在enum后面加上标识符,然后加上用{}括起来的枚举数列表,枚举数之间用逗号隔开。例子:
#include <iostream>
using namespace std;
int main(){
enum meiju1{zero,one,two,three,four,five};
cout<<zero<<'\t'<<one<<'\t'<<two<<'\t'<<three<<'\t'<<four<<'\t'<<five<<endl;
//system("pause");//在vscode上要显示cout的结果,需要加上这句
return 0;
}
上述代码定义了一个枚举类型meiju1,而枚举数的值默认从0开始,逐次加1,所以zero等于0,one等于1,two等于2,以此类推。运行结果如下:
然后就可以定义枚举类型meiju1的变量,并对变量赋值,代码如下:
#include <iostream>
using namespace std;
int main(){
enum meiju1{zero,one,two,three,four,five};
meiju1 a=zero;
meiju1 b=five;
cout<<a<<'\t'<<b<<'\t'<<endl;
//system("pause");//在vscode上要显示cout的结果,需要加上这句
return 0;
}
变量a、b都是meiju1类型的变量,所以可以用枚举数zero、one、two、three、four和five对其进行赋值,代码中对变量a赋值zero(0),对变量b赋值five(5)并显示出来,结果如下:
在定义枚举类型时,也可以不使用默认值给枚举数赋值,可以用户自定义对哪个枚举数赋予什么值(usigned int型)。代码如下:
#include <iostream>
using namespace std;
int main(){
enum meiju2{baba=88,mama,haha,fafa=66};
cout<<baba<<'\t'<<mama<<'\t'<<haha<<'\t'<<fafa<<endl;
//system("pause");//在vscode上要显示cout的结果,需要加上这句
return 0;
}
在代码中,某些枚举数被赋予特定的值,而没有赋值的枚举数的取值则为前一个枚举数的值加1。输出结果如下:
个人理解:在C++中使用枚举(enum)类型,其实就是使用常量,只是枚举中可以使用多个常量,且常量之间相互关联。