码迷,mamicode.com
首页 > 其他好文 > 详细

枚举类型

时间:2019-09-12 13:16:10      阅读:11      评论:0      收藏:0      [点我收藏+]

标签:语句   play   定义类   指定   隐式转换   数值   枚举类型   space   枚举   

用户自定义类型:枚举类型

描述方式特殊:将该类型所有取值都一一枚举出来。

1.定义一个枚举类型,要求列举出该类型数据的全部可取值。

enum 枚举类型名 {变量值列表};

例:用枚举类型表示一个星期中的7天。

enum Weekday{SUN,MON,TUE,WED,THU,FRI}

2.对枚举元素按常量处理,不能对它们赋值。
例:

SUN=0;

该语句非法。

3.枚举元素具有默认值,从零开始递增,依次为0,1,2......也可以在声明另时行指定枚举元素的值。
例:

enum Weekday{SUN=7,MON=1,TUE,WED,THU,FRI}

注意:此处若未给MON赋值,则MON自动被赋值为8。

4.枚举变量的值可以直接赋值给整形。
例:

enum GameResult{WIN,LOSE,TIE,CANCEL};

int count=WIN;

此处将枚举类型数据WIN隐含转换为整形,作为整形变量count的初值。

5.整数值不能直接赋给枚举变量,如需要将整数值赋给枚举变量,应进行强制类型转换。
该整数处于枚举常量定义的范围之内,强制转换才能成功。

例:

GameResult result;
result=GameResult(count);

此处为显式转换。

6.枚举值可以进行关系运算。如>、<、>=、<=、==、!=
但枚举类型不可以直接进行数学运算,因为枚举类型在运算时会被隐式转换为int等类型,
如++、--运算符,无法保证在运算后该枚举类型仍然合法。

7.实际应用

# include < iostream>
using namespace std;

enum GameResult (WIN, LOSE, TIE, CANCEL); .
int main() {
    GameResult result;    
    enum GameResult omit= CANCEL;

    for (int count= WIN; count <= CANCEL; count++ ){
        result= GameResult (count) ;
        if (result== omit)
                cout<<"The game was cancelled“<<endl;
        else {
            cout<<"The game was played ";
            if (result== WIN)
                cout<< "and we won!";
            if (result== LOSE)
                cout<< "and we lost.";
            cout<<endl ;
         }
    }
    return 0;
}

枚举类型

标签:语句   play   定义类   指定   隐式转换   数值   枚举类型   space   枚举   

原文地址:https://www.cnblogs.com/szy211/p/11510929.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!