基本列舉宣告
標準列舉允許使用者為一組整數宣告一個有用的名稱。這些名稱統稱為普查員。列舉及其關聯的列舉器定義如下:
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
};