枚举
enum 定义一组具名的整型常量,用于描述有限、明确的取值集合。
C++11 强类型枚举
cpp
// (可选)自定义底层类型:默认是 int
enum class Direction : int {
NORTH,
EAST,
SOUTH,
WEST
};
// 使用
Direction d = Direction::NORTH; // 强作用域,需加作用域前缀
int dir_val = static_cast<int>(Direction::SOUTH);- 新的
enum的作用域不在是全局的 - 默认不能隐式转换成其他类型
C 风格枚举
cpp
enum Color {
RED, // 第一个值默认是 0
GREEN, // 1,一次递增
BLUE
};
// 可以使用赋值运算符显式设置枚举量的值
enum Status {
OK = 200,
NOT_FOUND = 404,
SERVER_ERROR = 500,
SERVER_OK, // 501,后面没有被初始化的枚举量的值将比前面的枚举量大1
};
// 可同时创建多个值相同的枚举量
enum {
zero, // 0
null = 0,
one, // 1
number_uno = 1
};
// 使用
Color c = RED;
int x = GREEN; // 隐式转换为 int(值为 1)