rel="File-List" href="file:///C:%5CUsers%5CChendx%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"> rel="themeData" href="file:///C:%5CUsers%5CChendx%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"> rel="colorSchemeMapping" href="file:///C:%5CUsers%5CChendx%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml">
顾名思义,enum就是enumerate的缩写,在C++中表示所修饰的复合结构是一个枚举类型的结构。
enum在C++中是一种创建符号常量的方法。例如
enum myestruct{red,blue,green}
这个枚举类型中的red=0,blue=1,green=2,它们更像预定义中的符号常量,当然,也有点类似于const。不过与const不同的是,const是可以取到地址的,而枚举中的符号常量则不行,这也可以看作是安全性上的加强吧。
另外,需要注意的是enum类型中符号常量的运算和取值范围:
1. enum可以在定义时被赋予int值或是long值。
2. enum若是不赋初值,则默认从0开始,依次递增1。
3. enum在定义时可以给不同的符号常量赋予相同的值,也可以给任意常量赋予任何值,该常量之后的符号常量值依次递增1。如若是
enum myestruct{red,blue=100,green}
则red是0,green是101.
4. enum的取值范围。一个enum的最大取值是大于当前enum中的最大值的,最小的2的次方减1。而当enum的最小值大于0时,最小取值就是0;若是小于0时,求得过程同最大取值的求取过程。
5. enum中的符号常量只能进行符号常量间的赋值运算,如red=blue,且不能被赋予普通的数值,如red=1是错误的。但是可以通过强制转换来使得这样的赋值成立,前提是赋予的值在该enum的取值范围中,如red=myestruct(2)。
enum在C++中是一种创建符号常量的方法。例如
enum myestruct{red,blue,green}
这个枚举类型中的red=0,blue=1,green=2,它们更像预定义中的符号常量,当然,也有点类似于const。不过与const不同的是,const是可以取到地址的,而枚举中的符号常量则不行,这也可以看作是安全性上的加强吧。
另外,需要注意的是enum类型中符号常量的运算和取值范围:
1. enum可以在定义时被赋予int值或是long值。
2. enum若是不赋初值,则默认从0开始,依次递增1。
3. enum在定义时可以给不同的符号常量赋予相同的值,也可以给任意常量赋予任何值,该常量之后的符号常量值依次递增1。如若是
enum myestruct{red,blue=100,green}
则red是0,green是101.
4. enum的取值范围。一个enum的最大取值是大于当前enum中的最大值的,最小的2的次方减1。而当enum的最小值大于0时,最小取值就是0;若是小于0时,求得过程同最大取值的求取过程。
5. enum中的符号常量只能进行符号常量间的赋值运算,如red=blue,且不能被赋予普通的数值,如red=1是错误的。但是可以通过强制转换来使得这样的赋值成立,前提是赋予的值在该enum的取值范围中,如red=myestruct(2)。