[C++, CPP 教學 教程 教材 Tutorial] 基本資料型態(Fundamental Data Type) - 列舉型態(Enumeration)
YehYeh\'s Notepad yehyeh@gmail.com 

[C++, CPP] 基本資料型態(Fundamental Data Type)

列舉型態(Enumeration)

  • 寫程式時,有時會希望變數的值,只能是特定的指定值之一,此時就要用列舉型態
  • 宣告:
    • enum 型別名稱 { 值1, 值2, 值3,.... };
    • enum 型別名稱 { 值1, 值2, 值3,.... } 變數名稱1,變數名稱2,...;
  • 匿名宣告:因為沒有定義型別名稱,所以只有在宣告列舉型態時可以宣告變數,之後就無法宣告該型態的變數
    • enum { 值1, 值2, 值3,.... } 變數名稱1,變數名稱2,...;
    • enum  { Sun=5, Mon, Tues, Wed, Thurs, Fri, Sat } week1;
      week1 = Tues;
      week1 = Week(7);    // 同 week1 = Tues;
      
  • 每個列舉型態佔用4bytes
  • 列舉子(Enumerator):列舉型態裡面的值
    • 每個列舉子都會被定義一個整數值,如果沒有指定整數值,則預設是由0開始自動遞增
      • enum Week { Sun, Mon, Tues, Wed, Thurs, Fri, Sat } week1;
        week1 = Tues;       
        week1 = Week(2);    // 同 week1 = Tues
        
    • 列舉子的值可以重複
    • 預設值1=0,值2=1,值3=2...
    • 若只定義第1個數值,則後序的數值會自動遞增。
      • enum Week { Sun=5, Mon, Tues, Wed, Thurs, Fri, Sat } week1;
        week1 = Tues;
        week1 = Week(7);    // 同 week1 = Tues;
        
    • 若要用整數值設定列舉型態變數,則要先轉型
      • enum Week { Sun, Mon, Tues, Wed, Thurs, Fri, Sat };
        Week  week1 = Tues;
        Week  week2 = static_cast <week>(2);
        Week week3 = Week(2);