定义:在默认情况下讲整数值赋给枚举量,第一个枚举量的值为0,第二个枚举量的值为1,依次+1
*与C#相比个人认为C++的enum不好一点是不能通过枚举名点其中的枚举量!!!!感觉证人都不好了 T-T
enum spectrum{red,orange,yellow,green,blue,violet,indigo,ultraviolet};//他们对应的数值0~7,red,orange...这些常量叫做枚举量
1、可以用枚举名称来声明这种类型的变量:
spectrum band;
2、可以讲枚举量赋给这些枚举类型的变量:
band=blue; //正确 band=2000; //错误,超出枚举范围
3、枚举只有复制运算,没有为枚举定义算数运算:
band=orange; //正确; ++band; //错误 band=orange+red; //错误
4、枚举量是整形的,可被提升为int类型,但int类型不能自动转化为枚举:
int color=blue; //正 确,枚举量是整型 band=3; //不正确,int类型不能转换为枚举类型 color=3+red; //正 确,color的枚举量为int型,red+3也转化为int型
5、如果int值在枚举范围内(有效的),则可以通过强制类型转换,将他赋值给枚举变量:
band=spectrum(3); //将int型3转化为枚举类型
6、如果int型数值不在枚举范围内,进行强制类型转换,结果是不确定的:
band=spectrum(40003); // undefined
1、显示的赋值
enum bits{one=1,two=2,four=4,eight=8};
2、非显示赋值
enum bigstep{first,second=100,third}; //first为0,third为101 enum{zero,null=0,one,numer0_uno=1}; //zero为0,one为1
3、取值范围
enum bits{one=1,two=2,four34,eight=8}; bits myflag; myflag=bits(6);//正确,6不是枚举值,但是它在1~8中间