枚举类型用于命名整型常量以提升代码可读性,enum定义基本枚举,默认从0开始赋值,可手动指定值;C++11引入enum class解决作用域污染和隐式转换问题,使用需加作用域且禁止隐式转为整数,建议用enum class替代魔数并结合switch增强逻辑清晰度。

在C++中,枚举类型(enum)是一种用户定义的数据类型,用于为一组整型常量命名,提高代码的可读性和可维护性。通过使用枚举,可以将具有逻辑关联的常量组织在一起。
使用 enum 关键字定义一个枚举类型:
enum Color {
RED,
GREEN,
BLUE
};
默认情况下,枚举值从0开始自动赋值:
可以声明该类型的变量并赋值:
立即学习“C++免费学习笔记(深入)”;
Color myColor = GREEN;
if (myColor == 1) {
// 条件成立,因为 GREEN 的值是 1
}
可以手动为枚举成员指定值:
enum Status {
SUCCESS = 1,
ERROR = -1,
PENDING = 100
};
</font>
后续成员若未指定,则按前一个值递增:
enum Number {
A = 5,
B, // 值为 6
C // 值为 7
};
传统 enum 存在作用域污染问题:枚举成员会暴露在外部作用域中,可能引发命名冲突。
C++11 引入了 enum class(强类型枚举),解决此问题:
enum class Direction {
LEFT,
RIGHT,
UP,
DOWN
};
使用时必须加上作用域:
Direction dir = Direction::LEFT; // 错误:不能直接使用 LEFT // dir = LEFT;
强类型枚举还禁止隐式转换为整数:
int value = dir; // 编译错误 int value = static_cast<int>(dir); // 必须显式转换
switch(dir) {
case Direction::UP:
moveY(1);
break;
case Direction::DOWN:
moveY(-1);
break;
}
以上就是c++++中如何使用枚举类型enum_enum枚举类型使用方法的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号