C++中的枚举类型可以使用enum
关键字来定义,但是这种方式存在一些缺点,比如枚举值的作用域污染和不易扩展等问题。而C++11引入了enum class
,可以有效地解决这些问题。
[枚举类型enum class:更加安全的枚举定义]
enum class
定义的枚举类型具有以下特点:
- 枚举值的作用域与
enum class
作用域相同,不会污染命名空间; - 枚举值不能隐式转换为整型,需要显式转换;
- 可以指定枚举值的底层类型,避免默认使用int类型带来的潜在问题。
下面是使用enum class
定义枚举类型的示例代码:
enum class Color {
RED,
GREEN,
BLUE
};
Color c = Color::RED