c 0x enum列舉型別

2021-06-07 08:35:22 字數 601 閱讀 9296

標準c++中的enum

enum people;

c++11中的enum

enum class people;

在c++11中enum是「強型別」,不預設的轉換成int,而且有類域

people p=man;//標準c++

people pp=people::woman;//c++11,因為有類域,所以可以這樣寫

int i=p;//標準c++中正確,而c++11中錯誤,因為其是強型別

int i=(int)p;//c++11中該這樣寫

int i=5;
p=i;//錯誤,應為p=(people)i;

c++11中的列舉型

可以指定列舉的底層資料型別,所以可以進行簡單的互通操作以及保證列舉值的體積尺寸大小:

enum class people:char;

列舉類的底層資料型別必須是有符號或無符號的整型,預設情況下是int。

C 列舉型別

c 中的列舉型別繼承於 c 語言。就像其他從 c 語言繼承過來的很多特性一樣,c 列舉也有缺點,這其中最顯著的莫過於作用域問題 在列舉型別中定義的常量,屬於定義列舉的作用域,而不屬於這個列舉型別。例如下面的示例 enum fileaccess fileaccess access read 正確 fi...

c 列舉型別

列舉型別是一種的值型別,它用於宣告一組命名的常數。1 列舉的宣告 列舉宣告用於宣告新的列舉型別。訪問修辭符 enum 列舉名 基礎型別 列舉由int,uint,byte,sbyte,long,ulong,short,ushort這8種基元型別構成基型別,沒有顯式地宣告基礎型別的列舉聲 明意味著所對應...

C 列舉型別

如果乙個變數你需要幾種可能存在的值,那麼就可以被定義成為列舉型別。之所以叫列舉就是說將變數或者叫物件可能存在的情況也可以說是可能的值一一例舉出來。舉個例子來說明一吧,為了讓大家更明白一點,比如乙個鉛筆盒中有一支筆,但在沒有開啟之前你並不知道它是什麼筆,可能是鉛筆也可能是鋼筆,這裡有兩種可能,那麼你就...