枚举是用户定义的数据类型,我们为变量指定一组值,变量只能从一小组可能的值中取出一个。我们使用enum
关键字来定义枚举。
enum direction {East, West, North, South}dir;
这里枚举名称是只能取四个方向之一的指定值,声明末尾的dir
是枚举变量。
让我们举一个简单的例子来理解这一点:
这里我已经将值West
分配给枚举变量dir
,当我显示dir
的值时,它显示 1。这是因为默认情况下值从 0 开始递增,意思是东是 0,西是 1,北是 2,南是 3。
简单的枚举示例
#include<iostream>
using namespace std;
enum direction {East, West, North, South}dir;
int main()
{
dir = West;
cout<<dir;
return 0;
}
另一种声明枚举变量的方法
正如我们在上面的例子中看到的,我在枚举声明中声明了枚举变量dir
,还有另一种声明枚举变量的方法。
#include <iostream>
using namespace std;
enum direction {East, West, North, South};
int main(){
direction dir;
dir = South;
cout<<dir;
return 0;
}
输出:
3
为什么在 C++ 中使用enum
既然我们已经理解了什么是枚举以及如何在程序中使用它们,那么让我们讨论一下我们使用它们的原因:
只有在我们期望变量具有一组可能的值时才使用枚举,例如,我们有一个保存方向的dir
变量。由于我们有四个方向,这个变量可以取四个值中的任何一个,如果我们尝试为这个变量赋另一个随机值,它将抛出一个编译错误。这会增加编译时检查并避免通过传入无效常量而发生的错误。
经常使用它们的另一个重要位置是switch-case
语句,其中case
块期望的所有值都可以在枚举中定义。这样我们就可以确保我们在switch
括号中传递的enum
变量没有采用它不应该接受的任何随机值。
如何更改enum
的默认值
#include <iostream>
using namespace std;
enum direction {East=11, West=22, North=33, South=44};
int main(){
direction dir;
dir = South;
cout<<dir;
return 0;
}
输出:
44