所谓枚举,作用就是列出一堆数值的集合,然后规定某个变量只能从集合中取值。例如,抛一个骰子,取值只能是1,2,3,4,5,6;交通灯的颜色,只能是red,blue和yellow。
enum Dice
{
one = 1, two, three, four, five, six
};
enum Light
{
red = 0, blue, yellow
};
在赋值的时候,只要赋了第一个值,后面的就会自动递增。
定义枚举类型的变量如下:
#include <iostream>
enum Light
{
red = 0, blue, yellow
};
int main()
{
Light a = red;
std::cout << a << std::endl;
std::cin.get();
}
注意,给Light类型的a赋值,只能用red,blue或者yellow,而不能直接用整数。
枚举类型的变量不能做运算,例如:
a++;
a = red + blue;
都是不允许的。也就是说变量不能做左值,但是可以做右值,枚举量也是一样,它们都会自动转换:
int b;
b = 1 + a; //枚举类型的变量自动转换
b = red; //枚举量自动转换
详情可参考:https://www.runoob.com/w3cnote/cpp-enums-intro-and-strongly-typed.html