我要加入

巴哈程式競技、電資社團

會長:N0983658212 / 美好的過去漸行漸遠開設日:2020-11-27 22:44:16

  • EXP

  • 資金226803  
  • 招募制度:審核制
  • 成員:310 人
  • 昨日人氣:0

C++ enumeration Type

推上精選編輯

近期編輯:darker2020 ...看更多

文章作者 : darker2020

參考資料 : C++原文書、微軟的C語言文件



語法 : enum typeName {value1, value2, ... };

value1, value2, ...被稱為 enumerators.

你可以指定值,默認情況下 value1 = 0, value2 = 1, ... 以此類推。注意value不是變數。

要注意的是,value不能有單引號、名稱為數字開頭等等...


如果你指定value3 = 5;

那麼結果 value1 = 0, value2 = 1, value3 = 5, value4 = 6, value5 = 7,......


最常見的例子就是一個星期 :
enum DAY {sunday = 0, monday, tuesday, wednesday, thursday, friday, saturday};

我們可以再宣告一個enum型別的變數來儲存

Day favoriteDay;

還可以再複製值後再存入另一個變數

favoriteDay = wednesday;

兩者可以合併寫成一句 :

Day favoriteDay = wednesday;
Day myDay = mondey;


因為沒有數學運算符號可以允許使用在enum上,所以以下皆為不合法
favoriteDay = myDay + 2;
favoriteDay = monday + wednesday;
favoriteDay = favoriteDay *2
favoriteDay++;


若要將整數值明確指派給列舉資料類型的變數,請使用類型轉換(C語言參考手冊提到):

C++和C語言的方法並不相同,C語言請去看C語言參考手冊,以下只示範C++


favoriteDay = monday;
favoriteDay  = static_cast<sports>(favoriteDay +1);

//after the statement : favoriteDay  = tuesday;


基本的介紹到這裡就完成了,後續有興趣自己去看資料吧。

我這篇只是為了那篇猜拳遊戲才寫的= =



延伸 :

1. 對enum型別使用關係運算符(<=、>=、<...)

2. 在for的條件中使用enum型別(使用數學運算要轉型,關係不用)

3. 定義列舉型別,並使用列舉來宣告,寫成一行。

enum grades {A,B,C,D,F} courseGrade;

enum coins {penny, nickel, dime, halfdollar, dollar} change, usCoins;

4. 匿名類型、用typdef創造匿名。



公會首頁

主選單
程式相關
  教學
  小作品
  程式範例
競技程式(競程)
  一些網站
  學習資源
資安相關
年會介紹
公會 Rule
  Wiki 百科
關聯資料