除了類之外,c++還提供了另一種形式簡單的使用者自定義型別,使得我們可以列舉一系列值:
其中,列舉值(如red)位於其enum class的作用域之內,因此我們可以在不同的enum class中重複使用這些列舉值而不致引起混淆。例如,color::red是指color的red值,它與traffic_light::red顯然不同。
列舉型別常用於描述規模較小的整數值集合。通過使用有指代意義(且易於記憶)的列舉值名字,可以提高**的可讀性,降低出錯的風險。
enum後面的class關鍵字指明了列舉是強型別的,且它的列舉值位於指定的作用域中。不同的enum class是不同的型別,這有助於防止對常量的意外誤用。在上面的例子中,我們不能混用traffic_light和color的值:
同樣,我們也不能隱式地混用color和整數值:
預設情況下,enum class只定義了賦值、初始化和比較(如==和
在這裡,col的值是1。預設情況下列舉值對應的整數從0開始,依次加1。「普通」enum很早就用在c++和c的程式中了,所以即使它的效果並非最優,時至今日仍被很多人使用。
C語言 22 列舉
列舉是c語言中的一種基本資料型別,並不是構造型別,它可以用於宣告一組常數。當乙個變數有幾個固定的可能取值時,可以將這個變數定義為列舉型別。比如,你可以用乙個列舉型別的變數來表示季節,因為季節只有4種可能的取值 春天 夏天 秋天 冬天。回到頂部 一般形式為 enum 列舉名 enum season 回...
C 入門9 2 列舉
為什麼會有列舉?多人同時開發erp人員管理系統 儲存人員資訊有 姓名,性別,年齡,部門,職位。簡言之 如果希望得到乙個固定集合的值,就採用列舉。宣告方式 public enum 列舉名 值1,值2,值3,型別轉換 列舉與int相互轉換 要獲得列舉的值,只要轉換為string型別。列舉與string相...
C 基礎 4 列舉
列舉和陣列 結構有些像。下面做個對比 列舉 enum 新型別名 陣列 資料型別 陣列名 元素個數 結構 struct 新型別名稱 列舉的不同之處在於,列舉量自己有自己的預設值,不同於陣列結構需要給成員 元素 賦值。比如,第乙個列舉量的值預設為0,第二個是1,第三個是2 以此類推。所以,如果定義時列舉...