我听到一些人建议在C++中使用枚举类,因为它们的类型安全。
但这到底意味着什么呢?
C++有两种枚举
:
枚举类
ES枚举
s下面是一些如何声明它们的示例:
enum class Color { red, green, blue }; // enum class
enum Animal { dog, cat, bird, human }; // plain enum
enum Color { red, green, blue }; // plain enum
enum Card { red_card, green_card, yellow_card }; // another plain enum
enum class Animal { dog, deer, cat, bird, human }; // enum class
enum class Mammal { kangaroo, deer, human }; // another enum class
void fun() {
// examples of bad use of plain enums:
Color color = Color::red;
Card card = Card::green_card;
int num = color; // no problem
if (color == Card::red_card) // no problem (bad)
cout << "bad" << endl;
if (card == Color::green) // no problem (bad)
cout << "bad" << endl;
// examples of good use of enum classes (safe)
Animal a = Animal::deer;
Mammal m = Mammal::deer;
int num2 = a; // error
if (m == a) // error (good)
cout << "bad" << endl;
if (a == Mammal::deer) // error (good)
cout << "bad" << endl;
}
问题内容: 可以使用以下任一方法在JPA中定义枚举 要么 我想知道这两个定义的优缺点是什么? 我听说ORDINAL的性能比EclipseLink的STRING更好(更快)。 真的吗? 问题答案: 我总是去。 速度很少是最重要的问题-可读性和可维护性 更为 重要。 我使用它是因为手动检查数据库中的行要容易得多,但更重要的是,我可以做两件事,而无需接触数据库,无法处理: 我可以更改枚举的 顺序 我可以
问题内容: 我是一名即将毕业的计算机科学专业的学生,在我的整个编码生涯中,我发现很少使用枚举的实例,除了典型的情况(例如代表标准纸牌的面孔)外,还使用了枚举。 您是否知道在日常编码中使用枚举的任何巧妙方法? 为什么枚举如此重要,在什么情况下应该能够确定建立枚举是最佳方法? 问题答案: 这些是主要的论点,以及短的例子。 的情况 从Java 6开始,是一个凌乱类的示例,该类可以从使用中受益匪浅(除
问题内容: 我想知道为什么在Java语言中a 不能扩展。 我不是在谈论一个延伸的(这不能做,因为Java没有多重继承,而Š隐含延长),但一类的以只添加额外的方法,而不是额外的枚举值。 就像是: 要这样使用: 因此,有人可以对此限制提供理由(或将我指向正确的JLS部分)吗? 问题答案: 我认为 他们这样做 的答案来自以下问题: 在您的示例中,如何实例化MyClass?用户永远不会(通过)显式实例化枚
当您需要定义错误码和错误信息时,可能会使用以下方式, <?php class ErrorCode { const SERVER_ERROR = 500; const PARAMS_INVALID = 1000; public static $messages = [ self::SERVER_ERROR => 'Server Error',
枚举具有名为'hash value'的属性,该属性是枚举内的索引。
问题内容: 在JDK1.5之前的Java中,“ Typesafe Enum”模式是实现只能接受有限数量的值的类型的常用方法: (例如,参见Bloch的Effective Java中的第21项)。 现在在JDK1.5 +中,显然可以使用“官方”方式enum: 显然,该语法更好,更简洁(不需要为值明确定义字段,适当toString()提供),但是到目前为止enum看起来非常类似于模式。 我知道的其他差