枚举

C++的enum工具提供了另一种创建符号常量的方式,这种方式可以代替const。它还允许定义新类型,但必须按严格的限制进行。使用enum的句法与使用结构相似。

enum spectrum{red, orange, yellow, green, blue, violet,  indigo, ultraviolet };

这条语句完成两项工作:

1. 让spectrum成为新类型的名称;spectrum被称为枚举(enumeration),就像struct变量被称为结构一样。

2.将red, orange, yellow等作为符号常量,他们对应数值0-7,这些常量叫做枚举量(enumerator).

可以用枚举名来声明这种类型的变量:

spectrum band;

枚举变量具有一些特殊的属性:

1.在不进行强制类型转换的情况下,只能将定义枚举时使用的枚举量赋给这种枚举的变量。如:

band = orange;      //有效,orange是枚举量;

band = 2000;         //无效,2000不是枚举量;

2.枚举量是整型,可被提升为int类型,但int类型不能自动转换为枚举类型;如:

int  color  =  blue;   //有效,枚举量被提升为整型;

band = 3;                //无效,int类型不能自动转换为枚举类型;

正确的方式是:band = spectrum(3);    如果试图对一个不适当的值进行强制类型转换,结果是不确定的;

你可能感兴趣的:(枚举)