C++的enum工具提供了另一種創建符號常量的方式,這種方式可以代替const。它還允許定義新類型,但必須按嚴格的限制進行。使用enum的句法與使用結構相似。
enum spectrum{red,orange,yellow,green,blue,violet,indigo,ultraviolet};
這條語句完成兩項工作。
在默認情況下,將整數值賦給枚舉量,第一個枚舉量的值為0,第二個枚舉量的值為1,以此類推。可以通過顯式地指定整數值來覆蓋默認值。
可以通過枚舉名來聲明這種類型的變量。
spectrum band;
枚舉變量的特殊屬性
在不進行強制類型轉換的情況下,只能將定義枚舉時使用的枚舉量賦給這種枚舉的變量,如下所示:
band=blue;//有效,blue是枚舉量 band=2000;//無效,2000不是枚舉量
因此,spectrum變量受到限制,只有8個可能的值。如果試圖將一個非法值賦給它,則有些編譯器將會出現編譯器錯誤,而另一些則發出警告。為獲得最大限度的可移植性,應將把非enum值賦給enum變量視為錯誤。