枚举类型,顾名思义,“枚”作为量词,作“个”讲,那么枚举,就是一个一个的列举,如果一件事情能够被一个一个的列举,那么它的数量肯定就是有限的,否则是不能被一一列举出来的。所以枚举类型即为能被列举的常量的一个集合。
在生活中,枚举的例子随处可见,比如礼拜几,那么就可以作为一个枚举变量。这个变量所存储的值,是有限的,且,能被我们所列举。再比较说,性别。它也可以作为一个枚举类型,我们知道,性别也就只有“男”或者“女”,它是可以被我们所列举的。它能很直观的表达出我们所定义的事件。
如:定义一个枚举类型的变量,虽然不知道变量具体是什么值,但能知道它可能会有哪些值,这样,这样,就能对程序中所出现的变量的取值有一个很好的估量,从而使程序的编写更加顺利。
1、C语言中enum
enum color
{
red = 10,
yellow = 'A',
white,
bule
};
C语言枚举,本质类型检测不严格,允许类型不一致。但是CPP是强类型,所以CPP禁止使用C语言的enum。
2、CPP中的enum
一般形式,初始化和赋值。如:
#include<iostream>
using namespace std;
enum color
{
red = 10,
yellow,
white,
bule
};
int main()
{
enum color color1(red);
enum color color2(color::white);
color1 = bule;
cout << color1 << endl;
cout << color2 << endl;
return 0;
}
指定数据类型。如:指定 color 为 char 类型。
enum color :char
{
red = 'A',
yellow,
white,
bule
};
CPP中枚举名称不可以重名,枚举成员不可以重名。如:
enum color
{
red,
yellow,
white,
bule
};
enum color
{
red,
yellow,
white,
bule
};
避免上述错误,解决如下:
enum color1
{
red1,
yellow1,
white1,
bule1
};
enum color2
{
red2,
yellow2,
white2,
bule2
};
CPP是强类型,所以枚举类型检测也严格。如:
enum color :char
{
red = 'A',
yellow,
white,
bule
};
3、枚举的实际应用
enum class Jun :int
{
班长 = 1,
排长,
营长,
连长,
团长,
旅长,
师长,
军长,
司令
};
...