CPP {enum枚举类型,enum class
强枚举类型}
enum
定义
enum Mode_{
Mode_A = 123,
Mode_B, // 自动为124
Mode_C, // 自动为125
Mode_D, // 自动为126
};
比如对于Mode_B
, 他的index
下标是1
, 他的value
值为124
(int类型), 他的key
值为Mode_B
(字符串类型);
enum_class强枚举类型
定义
在基本使用上 和enum
完全一样;
性質
enum
有个缺点, enum ST{ A, B, C}
, 此时A/B/C
的作用域 并不是ST::A
他就是A
;
而对于enum class
強枚舉類型, enum class ST{ A, B, C}
, 此时A,B,C
的作用域 就是ST::A
外界无法访问A
;
@DELI;
对于enum
, 他的类型 就是int
; 但是对于enum class
他不是int
(你直接输出会报错), 但他可以强转为int
, 本质上是一样的;