关于C++枚举类型enum

关于C++枚举类型enum

一、何为枚举类型?
枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。

声明形式:

enum 枚举名 {变量列表}; 

例如:

 enum Weekday{SUN,MON.TUE,WED,THU,FRI,SAT};

定义枚举数据类型变量,例如:

Weekday myweekday;

(注意数据类型是Weekday而不是enum Weekday)

二、枚举类型应用说明

  1. 枚举元素具有默认数值,它们依次为:0,1,2,3,...。例如上例中SUN的值为0,MON的值为1,TUE为2,...,SAT为6。
  2. 也可以在声明中另行定义枚举元素的值,如:
enum Weekday{SUN=7,MON=1,TUE,WED,THU,FRI,SAT};

定义SUN为7,MON为1,以后顺序加1,TUE为2,WED为3,...,SAT为6。

  1. 对枚举元素按常量处理,但不能对它们直接赋予常量值。例如,下面的的语句是错误的:
SUN=7;//SUN是枚举元素,不能直接赋予常量值

如需要将整数附值给枚举变量,应进行强制类型转换,例如:
SUN=(Weekday)7;//在值前面加(类型)是常用的强制类型转换方法

  1. 枚举值可以进行关系运算:
    1)可以使用关系运算符来比较两个枚举变量。例如,以下 if 语句判断存储在 myweekday1中的值是否小于存储在 myweekday中的值:
    if ( myweekday1 < myweekday2)
    如果 myweekday1存储的值小于 myweekday2的值,则该语句为 true。否则该语句将为 false。
    2)可以使用整数值而不是符号名称来测试枚举变量。例如,以下两个 if 语句是等效的:
if  myweekday== MON)
if ( myweekday == 1)
  1. 如果为枚举变量赋值,则它们必须是整数。以下赋值语句将产生错误:
enum Weekday{SUN=1.1,MON=1.2,TUE=1.3,WED=1.4,THU,FRI,SAT }; //错误
  1. 枚举数据类型的目的之一是符号名称有助于使程序自我解释。但是,这些名称不是字符串,而是数值,所以在输出时,输出的是数字,而不是字符串。例如:
Weekday myweekday = SUN;
cout << myweekday;//输出的是0这个数值

输入结果如下:
关于C++枚举类型enum

  1. 枚举值可以赋给整型变量,例如:
int a;
a = SUN;//枚举值可以赋给整形变量
cout << a;
  1. 因为枚举数据类型的符号名称与整数值相关联,所以它们可以在 switch 语句中使用,如下面的程序所示:
    题目:口袋中有红,黄,蓝,白,黑5种颜色球若干个。每次从口袋中取出3个不同颜色的球,问有多少种取法?
 #include<iostream>
using namespace std;
void transfer(int i)//将相应的数值组合通过switch语句转换为字符串
{
    switch (i)
    {
    case 0:cout << "red "; break;
    case 1:cout << "yello "; break;
    case 2:cout << "blue "; break;
    case 3:cout << "white "; break;
    case 4:cout << "black "; break;
    }
}
enum ball {red,yello,blue,white,black};//定义球的枚举类型
int main()
{
    int i, j, k,count=0;
    for (int i = red; i <= black; i++)
    {
        for (int j = i+1; j <= black; j++)
        {   
                for (int k =j+1; k <= black; k++)
                {
                    
                        transfer(i);
                        transfer(j);
                        transfer(k);
                        cout <<endl;
                        count++;
                    
                }
        
        }
    }
    cout << count;
    return 0;
}

运行结果:
关于C++枚举类型enum
三,总结
当一个变量有几种可能的取值时,可以将它定义为枚举类型。枚举类型有利于程序的可读性。对枚举元素按常量处理,枚举元素具有默认数值,但不能对它们直接赋予常量值。因为枚举变量是整数,所以也可以使用关系运算符来比较两个枚举变量,并且通常配合switch语句来输出相应的值。

上一篇:第三篇数据库与ORM


下一篇:如何在Python中获取日期的星期几?