雜貨邊角(26) 強列舉型別enum class

2021-08-15 22:08:52 字數 463 閱讀 6140

列舉型別是c++從c繼承而來的特性,但是列舉型別在c中的實現其實和巨集無差別,即

#define male 0

#define female 1

....

//用列舉宣告為

enum

這種列舉型別和int整數的天然等價性很容易造成一些漏洞,如不同列舉名字域下的比較,並且傳統的列舉型別中的符號是直接開發在父作用域中,這也容易導致符號衝突。而c++11引入的強列舉型別,非常好理解,並且安全性也更強。

#include using namespace std;

enum class type : int ; //代表用int位元組來表示每個符號

enum class category : char ; //代表用char即1個位元組來實現各符號,可以節省空間

int main()

C 11 強型別列舉(enum)

c 11之前的enum型別是繼承c的,不溫不火 c 11對enum動刀了,加強了型別檢查,推出強型別enum型別,眼前一亮 使用過qt 的都知道,早就應該這麼做了,用的很爽!一 c中enum型別的侷限 1 非強型別作用域 enum type1 enum type2 問題來了,兩種列舉型別都有a列舉常...

列舉型別(enum)

enum 是計算機程式語言中的一種資料型別 列舉型別。應用場景 有些變數的取值被要求在乙個確定的範圍內,例如一周有 7天,一年 12個月,或者使用者自定義的今天安排要學習的百家姓有 4個等等。定義 在列舉型別的定義中列舉出所有的可能取值,該變數的取值只能是所列舉的範圍。格式 enum 列舉名 enu...

enum列舉型別。

列舉 定義常量符號,就是巨集定義常數的集合體 比如 四季,星期,意義相關的常數 狀態機 1 根據當前狀態,這個週期結束,就成了下乙個狀態。2 根據你的當前狀態,還和你的輸入有關。比如 fpga,gui 通過列舉,可以將一些常量賦值給某些固定的字串常量。可以通過改變列舉型別的狀態來達到自己的一些目的。...