enum Roster {Tom, Sharon, Bill, Teresa, John};
該語句將建立一個名為 Roster 的資料型別。因為單詞 enum 是 C++ 關鍵字,所以它必須小寫,值得注意的是,資料型別本身的名字是以大寫字母開頭的。雖然這並非必須,但是絕大多數程式設計師都會釆用首字母大寫的形式。Roster student;
此語句的形式與其他任何變數定義一樣,首先是資料型別名稱,然後是變數名稱。請注意,資料型別名稱是 Roster,而不是 enum Roster。student = Sharon;
變數的值可以這樣測試:if (student == Sharon)
請注意,在這兩個例子中,Sharon 周圍沒有引號。因為它是一個命名常數,而不是字串常數。student = 1; //錯誤
但是,可以使用整數值而不是符號名稱來測試列舉變數。例如,以下兩個 if 語句是等效的:
if (student == Bill)
if (student == 2)
if (student1 <student2)
如果 student1 等於 Bill,student2 等於 John,則該語句為 true。但是,如果 student1 等於 Bill,而 student2 等於 Sharon,則該語句將為 false。enum Department { factory = 1, sales = 2, warehouse = 4 };
請記住,如果為列舉符號賦值,則它們必須是整數。以下賦值語句將產生錯誤:enum Department { factory = 1.1, sales = 2.2, warehouse = 4,4 }; //錯誤
雖然沒有要求按升序排列賦給的整數值,但一般預設是這樣。enum Colors { red, orange, yellow = 9, green, blue };
在該範例中,命名常數 red 將被賦值為 0,orange 將為 1,yellow 將為 9,green 將為 10,blue 將為 11。enum Rooms { livingroom = 1, den, bedroom, kitchen };
在該範例中,livingroom 被賦值為 1,den 將為 2,bedroom 將為 3,kitchen 將為 4。
Roster student1 = Sharon;
cout << student1;
#include <iostream> using namespace std; // Declare the enumerated type enum Roster { Tom = 1, Sharon, Bill, Teresa, John }; // Sharon - John will be assigned default values 2-5. int main() { int who; cin >> who; switch (who) { case Tom : cout << "Tom's birthday is January 3.n"; break; case Sharon : cout << "Sharon's birthday is April 22.n"; break; case Bill : cout << "Bill's birthday is December 19.n"; break; case Teresa : cout << "Teresa's birthday is February 2.n"; break; case John : cout << "John's birthday is June 17.n"; break; default : cout << "Invalid selectionn"; } return 0; }程式執行結果:
2
Sharon's birthday is April 22.