枚舉類型

枚舉類型

  • 存在的語義: 定義了一個整型常量集合,而且代表這些整型常量之間具備關聯.spa

  • 語法: enum 枚舉類型 { 枚舉成員列表 };code

枚舉類型

  • 枚舉類型,是可選的,若'枚舉類型'不爲空,則能夠用該類型來聲明變量.作用域

  • 此時枚舉類型的變量只能由枚舉成員賦值/初始化,或者由同屬於同一枚舉類型的變量來進行賦值/初始化.如:編譯

enum    Eof{ EndOfStream,NotEndOfStream };
enum    HANG{ Hang,NoHang };
HANG    var0=Hang;
Eof     var1=EndOfStream;   /* 正確: 由枚舉成員進行賦值 */
Eof     var2=var1;          /* 正確: 由屬於同一枚舉類型的變量進行賦值 */
Eof     var5=(Eof)1;        /* 正確: 強制類型轉換 */
Eof     var3=1;             /* 錯誤: 1 是 int 類型. */
Eof     var4=var0;          /* 錯誤: 不屬於同一枚舉類型 */

枚舉成員列表

  • 枚舉成員列表,由若干個枚舉成員組成,使用','隔開.class

  • 枚舉成員,自己就是一個整型常量,因此能夠出如今任何常量能夠出現的地方.變量

  • 枚舉成員的值:命名空間

    • 對於枚舉成員列表中第一個出現的枚舉成員,若其值未被指定,則其值爲0.不然就是指定值語法

    • 對於其餘枚舉成員,其值若未被指定,則爲前一個枚舉成員的值+1;不然爲指定值.im

  • 必須使用編譯期常量表達式來指定枚舉成員的值.命名

  • 同一個枚舉列表中,枚舉成員的值能夠相同.

  • 枚舉成員的值的範圍,也即 long 類型變量的取值範圍:[-264,263-1].

  • 枚舉成員的名字,出如今定義枚舉的做用域/命名空間中.如:

class   X{
public:
enum    Eof{ EndOfStream,NotEndOfStream };
};

enum    Use{ UseGmtTime,UseLocalTime,UseS=1UL<<60 };
Println("%d",::UseGmtTime);     /* 正確 */
Println("%d",X::EndOfStream);   /* 正確 */
Println("%d",Use::UseGmtTime);      /* 錯誤 */
Println("%d",X::Eof::EndOfStream);  /* 錯誤 */
相關文章
相關標籤/搜索