枚举是用户定义的数据类型,我们为变量指定一组值,变量只能从一小组可能的值中取出一个。我们使用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
