常规枚举
定义及特点
C++中的枚举是一个被命名的整型常数的集合。枚举在生活中很常见,例如表示星期的Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,就是一个枚举。常规枚举常与switch语句配合使用以优化分支结构的表达。在C++中这样定义:
enum Week {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday};
枚举类型Week中,符号常量Sunday~Saturday分别对应整型0~6(在默认情况下),这些符号常量被称为枚举量,枚举量的实质是整型。
#include <string>
#include <iostream>
int main (void)
{
using std::cout;
using std::endl;
enum Week {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday};
cout << Sunday << endl;
cout << Monday << endl;
cout << Tuesday << endl;
cout << Wednesday << endl;
cout << Thursday << endl;
cout << Friday << endl;
cout << Saturday << endl;
return 0;
}
可以用枚举名来声明这种类型的变量并对其赋值,但在不进行强制类型转换的情况下只能将定义枚举时使用的枚举量赋给这种枚举变量:
Week week;//week为枚举变量
week = Sunday;//合法赋值
week = 0;//非法赋值
为了兼容C,在C++98/03中枚举量可以退化为整型,但这么