枚举类型enum class
时间: 2023-05-26 15:06:40 浏览: 195
枚举的用法详细总结
枚举类型是一种特殊的数据类型,其成员是一组有限的、完整的、唯一的值。在C++11中引入了enum class,它可以避免枚举类型的一些问题。
枚举类型的问题:
1. 命名冲突:枚举器的作用域是全局的,容易与其他变量、函数名发生冲突。
2. 隐式转换:枚举类型常常会自动地转换成整型,可能导致编译器无法检测到类型不匹配的错误。
enum class的优点:
1. 作用域限制:enum class中的枚举器只存在于类的作用域中,避免了命名冲突的问题。
2. 显式转换:enum class中的枚举类型不能隐式地转换成整型,需要进行显式转换,避免了类型不匹配的问题。
语法:
```cpp
enum class 枚举类型名称 {
枚举器1,
枚举器2,
......
};
```
示例:
```cpp
enum class Color {
Red,
Green,
Blue,
};
int main() {
Color c = Color::Red;
if (c == Color::Green) {
// do something
}
return 0;
}
```
注意:
1. 使用枚举器时必须加上作用域限定符,如“Color::Red”。
2. 不同的枚举类型中可以有相同的枚举器名称,不会发生冲突。
阅读全文