enum class与enum
enum
enum Color { Red, Green, Blue };
特点:
-
作用域:
-
枚举值(如
Red
、Green
)直接暴露在定义枚举的命名空间中。 -
容易与其他枚举或变量名冲突。
-
-
隐式类型转换:
-
枚举值可以隐式转换为整数。
-
-
底层类型:
-
底层类型(存储枚举值的实际类型)由编译器决定,通常是
int
。 -
无法显式指定底层类型
-
enum class
enum class Color { Red, Green, Blue };
特点:
-
作用域:
枚举值位于枚举类的作用域内,访问时需要显式指定枚举类名。 -
类型安全:
枚举值不能隐式转换为整数。 -
底层类型:
可以显式指定底层类型(如int
、char
等)。