Skip to content

枚举 ​

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)