枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。
如果一个变量只有几种可能的值,可以定义为枚举(enumeration)类型。所谓"枚举"是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。
创建枚举,需要使用关键字 enum。枚举类型的一般形式为:
enum enum-name { list of names } var-list;
enum-name 是枚举类型的名称。名称列表 { list of names } 是用逗号分隔的
eg1:
enum color { red, green, blue } c;//定义了一个名为color的的枚举类型,c是枚举变量。 c = blue;//给枚举变量C赋值 c = blue
eg2:
默认情况下,第一个名称的值为 0,第二个名称的值为 1,第三个名称的值为 2,以此类推。但是,您也可以给名称赋予一个特殊的值,只需要添加一个初始值即可。例如,在下面的枚举中,green 的值为 5。 enum color { red, green=5, blue }; 在这里,blue 的值为 6,因为默认情况下,每个名称都会比它前面一个名称大 1。
eg:
#include <iostream>
using namespace std;
int main()
{
enum school{teacher,student,headmaster} a,b,c;
a=school(0);
b=student;
c=headmaster;
cout<<a<<endl;
cout<<b<<endl;
cout<<c<<endl;
cout << "Hello World "<< endl;
return 0;
}
为什么要用枚举呢?
看看这个例子:
#include<iostream>
using namespace std;
void main()
{
int per=0;
switch(per)
{
case 0:
cout<<"中国人,牛!"<<endl;
break;
case 1:
cout<<"美帝人,黑!"<<endl;
break;
case 2:
cout<<"英国佬,才!"<<endl;
break;
default:
break;
}
}
//对比
#include<iostream>
using namespace std;
enum Person
{
Chinese,American,English
};
void main()
{
Person per=American;
switch(per)
{
case Chinese:
cout<<"中国人,牛!"<<endl;
break;
case American:
cout<<"美帝人,黑!"<<endl;
break;
case English:
cout<<"英国佬,才!"<<endl;
break;
default:
break;
}
}
看了之后知道理解了一点,但感觉也就那样。