enum OtherWeek { Mon };// 3. C++ 只允许同枚举类型值之间比较 // enum E1 { A, B }; //error // enum E2 { C, D }; //error // cout << (E1::B == E2::D ? "相等" : "不相等") << endl; //error } 我们看到第二种情况仍然报错如下:3. C++中的 enum class void test(){...
1、实现方法 在开发中遇到的一个场景,需要自动生成enum class,并且还要有enum与string相互转换函数,当需要扩展enum class的时候,只需要在初始化的时候改动 enum class,不需要改动enum与string相互转换函数,转换函数都是根据enum自动生成。 github tool/enum_class at main · C-CX/toolgithub.com/C-CX/tool/tr...
enum OtherWeek { Mon }; // 3. C++ 只允许同枚举类型值之间比较 // enum E1 { A, B }; //error // enum E2 { C, D }; //error // cout << (E1::B == E2::D ? "相等" : "不相等") << endl; //error } 我们看到第二种情况仍然报错如下: 3. C++中的 enum class void test(...
于是C++11 有了 强类型枚举,具体改进网上到处有文章,这里毕竟不是讨论 enum 和enum class的区别。
1. C语言中 enum void test() { enum Week { Mon, Tue, Wed, Thi, Fri, Sat, Sun }; enum Other { One, Two, Three }; enum Week week = Mon; // 1. 允许非枚举值赋值给枚举类型,
enum Thing{Wrong,Right}; 1. 2. 这是不能一起用的。 另外一个缺陷是传统枚举值总是被隐式转换为整形,用户无法自定义类型。C++11中的强类型枚举解决了这些问题。 ——— 二、强类型枚举 强类型枚举使用enum class语法来声明,如下: enum class Enumeration{ VAL1, VAL2, VAL3=100, ...
正如前面所说,强类型枚举能解决传统枚举不同枚举类下同枚举值名的问题,使用枚举类型的枚举名时,必须指明所属范围,比如:Enum::VAL1,而单独的VAL1则不再具有意义。 还有一点值得说明的是C++11中枚举类型的前置声明也是可行的,比如: enumcalss Enum;enumclassEnum1:unsignedint; ...
字符类型 class |类 const |保留关键字,没有具体含义 continue |回到一个块的开始处 default |默认,例如,用在switch语句中,表明一个默认的分支 do |用在do-while循环结构中 double |基本数据类型之一,双精度浮点数类型 else |用在条件语句中,表明当条件不成立时的分支 enum |枚举 extends |表明一个类型是另...
enum(枚举)类型,给出一系列固定的值,只能在这里面进行选择一个。19. explicit explicit(显式的)的作用是"禁止单参数构造函数"被用于自动型别转换,其中比较典型的例子就是容器类型。在这种类型的构造函数中你可以将初始长度作为参数传递给构造函数。20. export 为了访问其他编译单元(如另一代码文件)中的变量...
2、枚举(enum) 3、 联合(union) 1、结构体(struct) 1.0 结构体类型的声明 我们通常会用一个变量来定义一个事物,就比如我们要进行求和,我们通常会创建一个sum的变量来存放求和的结果,最终再打印sum,此时的sum就表示我们最终的求和结果。 但是,在生活中,有很多事物很难用一两句话来表示,就比如说一个学生,一个...