枚举类型
枚举类型(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 = blueeg2: 默认情况下,第一个名称的值为 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
;
}
}