“Enum”和“Enum Class”中Enum和Enum Class有什么区别以及如何将Enum值转换为整数?
答案 0 :(得分:3)
C++有两种枚举:
枚举类
普通枚举
以下是有关如何声明它们的几个示例:
enum class Color { red, green, blue }; // enum class
enum Animal { dog, cat, bird, human }; // plain enum
两者有什么区别?
枚举类 - 枚举器名称是枚举的本地名称,它们的值不会隐式转换为其他类型(如另一个枚举或整数)
普通枚举 - 其中枚举器名称与枚举在同一范围内,并且它们的值隐式转换为整数和其他类型
在枚举中:
enum type{x=10,y,z=50,j};
int value = x;
在枚举类中:
enum class type{x=10,y,z=50,j};
int value= static_cast<int>(x);