当前位置: 首页 > 知识库问答 >
问题:

枚举和枚举类之间的差异[重复]

喻高寒
2023-03-14

谁能解释一下

enum 
{Type1,type2}

enum class
{Type1, type2}

我经常使用前一个示例(可能太频繁了,没有足够的封装),但我从未使用过第二个示例。

谢啦

枚举

共有1个答案

薛扬
2023-03-14

枚举只是将其内容溢出到封闭范围内,并且基本上是一个常量静态整数。这意味着使用==运算符的任何默认枚举的第一个元素都是相同的。

枚举类有自己的作用域,不会污染它们所在的命名空间。它们还确保任何枚举类中的第一个元素不相等。

如果您有支持枚举类的编译器(现在任何主要编译器),则更喜欢枚举类,因为它们的特权

我想了解更多信息,请点击此处:

http://en.cppreference.com/w/cpp/language/enum

 类似资料:
  • 问题内容: 我正在学习Java中的Enum,我想知道Java和C ++中Enum的主要区别是什么。谢谢 问题答案: 在C ++中,枚举只是一组命名的整数常量。在Java中,枚举更像是类的命名实例。您可以自定义枚举中可用的成员。 同样,C ++将隐式将枚举值转换为它们的整数等效值,而转换必须在Java中是显式的。 有关更多信息,请参见Wikipedia。

  • 问题内容: Enumeration <有区别吗?扩展ZipEntry>和Enumeration ?如果是这样,有什么区别? 问题答案: 拥有其中一种后,您在做什么上没有实际差异,因为type参数仅在“输出”位置使用。另一方面,在您可以 用作 其中一个的方面有很大的不同。 假设您有一个-您无法将其传递给作为其参数之一的方法。您 可以 将其传递给采用方法。 当您有一个在输入和输出位置都使用type参数

  • 问题内容: 枚举具有获取枚举常量的方法,并且在具有 我发现的名称的类中存在的相同类型的方法都给出相同的输出。那还有什么其他区别。如果没有区别,那么为什么要添加JSL ? 问题答案: 包括该方法的原因是它可以与任何方法一起使用。相比之下, 用于特定方法的方法仅适用于该特定方法…,因为类不能被多态使用。 显然,该方法仅在您实现 需要 针对多种类型使用的代码的情况下才真正有用……而泛型则不会削减它。

  • Spring 3.x、JPA 2.0、Hibernate 4.x、Postgresql 9.x. 使用希望映射到Postgresql枚举的枚举属性处理Hibernate映射类。 使用枚举列上的where子句进行查询会引发异常。 SQL: Hibernate xml查询: > 按而不是按枚举查询工作正常。 没有数据库交互的Java工作良好: 不是,与和相同,异常更改为: 在查看https://sta

  • 问题内容: 背景 Spring 3.x,JPA 2.0,Hibernate 4.x,Postgresql 9.x. 使用我想映射到Postgresql枚举的enum属性在Hibernate映射的类上工作。 问题 用enum列上的where子句查询会引发异常。 代码(大大简化) SQL: Hibernate映射类: 调用查询的Java: Hibernate xml查询: 故障排除 按查询而不是枚举按

  • 为什么要在C++11中编译: 但这不是: