C++ 枚举类型(数据类型)
关键字 : enum
语法
定义枚举类
enum 标识符1 {
枚举常量1(标识符) = 1,
枚举常量2(标识符) = 2,
枚举常量3(标识符) = 3
} (可以在这里初始化一个枚举对象);
enum 标识符2 {
枚举常量1,
枚举常量2,
枚举常量3
};
以上这个自动标号 枚举常量表 的标号从0开始
创建枚举变量
enum 标识符1 对象名称 = 枚举常量;
注意
- 枚举常量不能是数据类型 只能是标识符
- 枚举变量可以给整数赋值,但是整数不能给枚举变量赋值
- 枚举变量间可以进行比较(== != < <= > >= )
- 枚举变量可以直接输出 不能直接输入
- 不同类型的枚举变量不崩相互赋值
- 枚举变量一半使用 switch 语句进行处理
- 不同类型的枚举变量可以进行比较,比较的是其在对应的常量表的标号
代码展示
//带有 = 整型参数
enum Session{
spring = 1, //spring 是一个标识符
summer = 2,
autumn = 3,
winter = 4
} ;
//不带有整型参数的
//常量表 自动分配 从0开始
enum Color{
red,
blue,
green
};
int main() {
enum Color color = blue;//green 标识符的常量为 1
std::cout << color << '\n';
unsigned int num;
//C++ 内建的输入流
std::cin >> num;
Session s = spring;
//柑橘输入的数字分配不同的枚举值
switch(num) {
case 0:
color = red;
break;
case 1 :
color = blue;
break;
case 2:
color = green;
break;
default:
std::cout << "出错";
}
//判断枚举的结果
switch (color) {
case red:
std::cout << "It's Red";
break;
case blue:
std::cout << "It's Blue";
break;
case green:
std::cout << "It's Green";
break;
}
enum Session s1;
//直接用标识符给枚举数据类型变量赋值
s1 = spring;
//可以将枚举变量给 int 变量赋值
//赋值的内容就是枚举值对应的数字
int s_num = s1;//1
std::cout << s_num << '\n';
//invalid conversion from 'int' to 'Session'
//不能使用整数给枚举变量赋值
// s1 = 2;
//枚举变量可以进行比较
enum Session s2 = summer;
if(s1 != s2){
std::cout << "季节不一样" << '\n';
}
//不同类型的枚举值也可以进行比较
//比较方式是直接比较枚举变量所在枚举常量表的标号
if(s2 != color){
std::cout << 'H' << '\n';
}
return 0;
}