语法:
enum class 枚举类名 [: 底层类型] {枚举值1,枚举值2,... };
一般形式(当然我们一般默认成员都显转int
,因此底层类型一般不写)
C++的枚举类:
在C++中,enum class
是一种类型安全的枚举类型,它比传统的enum
类型提供了更好的作用域控制和类型安全性。使用enum class
可以避免枚举值之间的隐式转换,这在传统的enum
类型中是一个常见问题。
特性 |
说明 |
---|---|
作用域隔离 |
枚举值只能通过 枚举类名::值 访问 |
类型安全 |
不允许隐式转换为 int |
可指定底层类型 |
可控制枚举值的存储大小 |
可读性高 |
代码结构清晰,易于维护 |
枚举元素的值取决于定义时各枚举元素排列的先后顺序。默认情况下,第一 个枚举元素的值为 0,第二个为 1,依次顺序加 1
由于 enum class 不允许隐式转换,必须显式转换。
enum class Gender {MAN,WOMAN,UNKNOW };Gender gender = Gender::MAN; // 使用的时候要加作用域