Hi,您好,欢迎来到西安盛图软件科技有限公司!

C++| 枚举(enum)

发布时间:2023-11-24 13:58:29

在C++中定义变量时,有的时候一个变量就有几种可能的值,就像星期有七种可能的取值,人的性别有两种可能的值一样,在c语言中可以将变量的值一一列出来,而且他的范围只限于列举出来的值的范围内取值,我们把这种就叫做C++中的枚举。

1、enum关键字

enum是C++中的一个关键字,enum叫枚举数据类型,枚举数据类型描述的是一组数据的集合,枚举型是预处理指令#define的替代,枚举和宏定义其实非常类似,宏在预处理阶段将名字替换成对应的值,枚举在编译阶段将名字替换成对应的值,

1、定义枚举

枚举数据(枚举常量)是一些特定的标识符,标识符代表什么含义,完全由程序员决定。数据枚举的顺序规定了枚举数据的序号,默认从0开始,依次递增。

1)先声明后定义

#include <iostream>
using namespace std;
enum RGB
{  
   R,G,B
};  
int main() {
 enum RGB rgb=G;
 cout << rgb << endl;
 return 0;
}

2)同时声明和定义

#include <iostream>
using namespace std;
int main() {
 enum RGB
 {  
   R,G,B
 }  rgb;  
 rgb=B;
   cout << rgb << endl;
 return 0;
}

3)直接定义

#include <iostream>
using namespace std;
int main() {
 enum
 {  
   R,G,B
 }  rgb;  
 rgb=B;
   cout << rgb << endl;
 return 0;
}

枚举值默认是从0开始,也可以显示指定。

例如,

#include <iostream>
using namespace std;
int main() {
 enum
 {  
   R=2,G,B
 }  rgb;  
 rgb=B;
   cout << rgb << endl;
 return 0;
}

2、枚举使用示例

定义星期枚举类型,并将初始值指定为1

例如,

#include <iostream>
using namespace std;
/* 定义枚举类型 */
enum DAY { MON=1,TUE,WED,THU,FRI,SAT,SUN};
int main()
{
   /* 使用枚举类型声明变量,再对枚举型变量赋值 */
   enum DAY yesterday, today, tomorrow;
   yesterday = MON;
   today = TUE;
   tomorrow = WED;
   cout << yesterday << " " << today << " " << tomorrow << endl;
   return 0;
}

3、枚举转换

枚举类型和int类型可以转换,我们可以转将int类型转换成枚举类型。

例如,

#include <iostream>
using namespace std;
enum DAY { MON=1, TUE, WED, THU, FRI, SAT, SUN };
int main()
{
 enum DAY yesterday,today,tomorrow;
 yesterday = TUE;
 today = (enum DAY) (yesterday + 1);//类型转换
 tomorrow = (enum DAY) 30; //类型转换
 cout << yesterday << " " << today << " " << tomorrow << endl;
 return 0;
}

以上为本次所有分享内容

上一篇:C++基础| 指针数组
下一篇:C++| struct结构体