基本列举声明

标准枚举允许用户为一组整数声明一个有用的名称。这些名称统称为普查员。枚举及其关联的枚举器定义如下:

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
};