【问题标题】:Convert Enum value to integer in "Enum" and "Enum Class"在“枚举”和“枚举类”中将枚举值转换为整数
【发布时间】:2021-01-11 11:23:16
【问题描述】:

Enum和Enum Class有什么区别,“Enum”和“Enum Class”中如何将Enum值转换为整数?

【问题讨论】:

  • 这能回答你的问题吗? Getting the integer value from enum
  • @RolandasUlevicius 不,这个问题是关于 C# 枚举的。
  • 不,我的问题是关于 c++ 中枚举值和枚举类值之间的区别。

标签: c++ enums enum-class


【解决方案1】:

C++ 有两种枚举:

枚举类
普通枚举
以下是一些关于如何声明它们的示例:

 enum class Color { red, green, blue }; // enum class
 enum Animal { dog, cat, bird, human }; // plain enum 

两者有什么区别?

枚举类 - 枚举器名称是枚举的本地名称,并且它们的值不会隐式转换为其他类型(如另一个枚举或 int)

普通枚举 - 其中枚举器名称与枚举在同一范围内,并且它们的值隐式转换为整数和其他类型

在枚举中:

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);

【讨论】:

  • 第二个例子应该是int value= static_cast&lt;int&gt;(type::x);
猜你喜欢
  • 2023-02-21
  • 1970-01-01
  • 2020-08-21
  • 2021-01-04
  • 2010-10-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多