enumcolour { RED, GREEN, BLUE };// unscoped enumstructprinter {enumstate { BUSY, IDLE, OFFLINE }; };// unscoped enum at class scopeenumclassdirection { LEFT, RIGHT };// scoped enumintmain() { colour clr_sky = BLUE ; printer::state curr_state = printer::BUSY ; direction next_mov...
根据Enum和Enum Class的特点,我们可以根据对常量类型的要求决定使用Enum还是Enum Class。 以下场景适合使用Enum: 常量类型用于内部表示,不用于显示名字。 常量值不需要提供附加的属性。例如只需要知道国家代码,而不需要获得国家的其它属性 枚举值允许组合(即支持位操作)。 Enum Class可以适用于更多的场景: 常用于可提供...
步骤2——自定义枚举量的值 1 前面讲通过定义enum enumType {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday};枚举量Monday、Tuesday等的值默认分别为0-6,我们可以显式的设置枚举量的值:enum enumType {Monday=1, Tuesday=2, Wednesday=3, Thursday=4, Friday=5, Saturday=6, Sunday=7}...
如此一来,当 num = b 的时候,对应的数值就是 5,而后的 c、d 会根据枚举的特性,进行累加,对应的值就是 6 和 7。4. 枚举类型的应用 前面在学习判断结构的时候,其中有提到 switch 后面括号里面的变量类型必须是整型、字符型、枚举类型或者 class 类型。下面就来看枚举类型是怎么应用到 switch 结构中。运...
而且enum class\enum struct具有更好的类型安全和类似封装的特性(scoped nature)。 enum class color{red,green,yellow}; enum class colorx{red,green=100,yellow}; //... 2.3 类型转换 与整形之间不会发生隐式类型转换,但是可以强转。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #include <iostream>...
Class:编译时被保留,在class文件中存在,但JVM将会忽略 Runtime:将被JVM保留,所以他们能在运行时被JVM或其他使用反射机制的代码所读取和使用 自定义一个注解 表明类型 public@interfaceOperation{} 使用,在方法中使用,类型安全,替代枚举 publicvoidoperation(@Operationintopeartion){switch(opeartion){caseADD:break;cas...
理解Swift的Enum,Struct和Class 回到只有Objective-C时代,封装特性仅限于类。但在Swift的世界现代,iOS和Mac编程中enums, structs, classes的任何一个都能有封装性。 结合协议(protocol),这些类型使做一些不可思议的事儿成为可能。虽然他们有很多共同的特性,但这些类型也有很大的不同点。
一、关键字enum的定义enum是C语言中的一个关键字,enum叫枚举数据类型,枚举数据类型描述的是一组 整型值的集合(这句话其实不太妥当),枚举型是预处理指令#define的替代,枚举和宏其实非常类似,宏在预处理阶段…
enum class E2 { A = 1, C = 2 };// 1. 强枚举类型不会将枚举元素暴露在外部作用域 cout << (int)(E1::A) << endl;int A = 100;// 2. 不相关的两个枚举类型不能直接比较,编译报错 cout << (E1::B == E2::C ? "相等" : "不相等") << endl; //error cout << (E1::B ==...
enum class E2 { A = 1, C = 2 }; // 1. 强枚举类型不会将枚举元素暴露在外部作用域 cout << (int)(E1::A) << endl; int A = 100; // 2. 不相关的两个枚举类型不能直接比较,编译报错 cout << (E1::B == E2::C ? "相等" : "不相等") << endl; //error ...