基本列举声明
标准枚举允许用户为一组整数声明一个有用的名称。这些名称统称为普查员。枚举及其关联的枚举器定义如下:
enum myEnum
{
enumName1,
enumName2,
};
枚举是一种类型,与所有其他类型不同。在这种情况下,此类型的名称为 myEnum
。期望这种类型的对象在枚举中采用枚举器的值。
枚举中声明的枚举数是枚举类型的常量值。虽然枚举器是在类型中声明的,但访问该名称不需要范围运算符::
。所以第一个枚举器的名字是 enumName1
。
Version >= C++ 11
范围运算符可以选择用于访问枚举中的枚举器。所以 enumName1
也可拼写为 myEnum::enumName1
。
枚举器从 0 开始分配整数值,并为枚举中的每个枚举器增加 1。所以在上面的例子中,enumName1
的值为 0,而 enumName2
的值为 1。
用户也可以为枚举器分配特定值; 该值必须是整数常量表达式。没有明确提供值的枚举器将其值设置为前一个枚举器的值+ 1。
enum myEnum
{
enumName1 = 1, // value will be 1
enumName2 = 2, // value will be 2
enumName3, // value will be 3, previous value + 1
enumName4 = 7, // value will be 7
enumName5, // value will be 8
enumName6 = 5, // value will be 5, legal to go backwards
enumName7 = 3, // value will be 3, legal to reuse numbers
enumName8 = enumName4 + 2, // value will be 9, legal to take prior enums and adjust them
};