基本列舉宣告

標準列舉允許使用者為一組整數宣告一個有用的名稱。這些名稱統稱為普查員。列舉及其關聯的列舉器定義如下:

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