CEnumClass &operator=( const CEnumClass &rhs ) { m_value = rhs.m_value; return *this; } protected: int m_value; }; 首先简单的说明一下这个类,CEnumClass是一个奇异递归模板,也就是说模板参数SubT 是CEnumClass<SubT>的子类,那么这样一来为了声明一个枚举类就必须要想下面这样: EType.hpp c...
枚举类型定义必须要使用 enum 关键字,否则编译器就不认识你是谁家的娃,直接就给你领到警察局去(报错)。结构体和共用体花括号里面定义的是类型的成员,每个成员都必须包括成员类型以及成员名称。枚举就不一样了,花括号里面的成员,是罗列出来的一个个元素别名,可以把这些别名理解为就是数据。而且分隔这些成员,...
在C语言中也是如此,对于一个复杂对象,C语言提供了结构体,就拿上面的学生例子来说,对于这么一个复杂对象的描述,C语言是这样实现的。 #include<stdio.h> struct stu { char name[20];//姓名 int age;//年龄 char id[12];//学号 char class[20];//班级 };//切记这里的分号必须保留 1. 2. 3. 4. 5...
在C语言中也是如此,对于一个复杂对象,C语言提供了结构体,就拿上面的学生例子来说,对于这么一个复杂对象的描述,C语言是这样实现的。 代码语言:javascript 复制 #include<stdio.h>struct stu{char name[20];//姓名int age;//年龄char id[12];//学号charclass[20];//班级};//切记这里的分号必须保留 在这里,...
enum class E1 { A = 1, B = 2 };enum class E2 { A = 1, C = 2 };// 1. 强枚举类型不会将枚举元素暴露在外部作用域 cout << (int)(E1::A) << endl;int A = 100;// 2. 不相关的两个枚举类型不能直接比较,编译报错 cout << (E1::B == E2::C ? "相等" : "不相等") <<...
enumclassWeekDay:int{Monday=1,Tuesday};// 后面略 Go // Golang:typeWeekDayintconst(MondayWeek...
enum class E2 { A = 1, C = 2 }; // 1. 强枚举类型不会将枚举元素暴露在外部作用域 cout << (int)(E1::A) << endl; int A = 100; // 2. 不相关的两个枚举类型不能直接比较,编译报错 cout << (E1::B == E2::C ? "相等" : "不相等") << endl; //error ...
enum class TrafficLight{RED,YELLOR,GREEN}; 1. 强类型枚举值具有传统枚举的功能——命名枚举值,同时又具有类的特点——具有类域的成员和无法进行默认的类型转换。所以也称之为枚举类——enmu class 枚举类的底层数据必须是有符号或无符号整型,比如char unsigned int unsigned long,默认为int。
enum box{pencil=3,pen};//这里pen就是4系统将自己主动进行pen=4的定义赋值操作。 样例: //枚举类型C语言 //杨鑫 #include <stdio.h> #include <stdlib.h> int main() { enum egg{a, b, c}; enum egg test; test = a; //对枚举变量test进行赋予元素操作,假设不赋值的话,默认是最后一个元素 ...
enum是一个新的关键字,专门用来定义枚举类型,这也是它在C语言中的唯一用途; typeName是枚举类型的名字;valueName1, valueName2, valueName3, ...是每个值对应的名字的列表。 花括号里面的元素(枚举成员)是常量而不是变量,这个一定要搞清楚,因为枚举成员的是常量,所以不能对它们赋值,只能将它们的值赋给其他的...