• 【原创】一起学C++ 之enum ---------C++ primer plus(第6版)


    枚举

    定义:在默认情况下讲整数值赋给枚举量,第一个枚举量的值为0,第二个枚举量的值为1,依次+1


    一、定义一个枚举,枚举类型,枚举量

    *与C#相比个人认为C++的enum不好一点是不能通过枚举名点其中的枚举量!!!!感觉证人都不好了 T-T

    enum spectrum{red,orange,yellow,green,blue,violet,indigo,ultraviolet};//他们对应的数值0~7,red,orange...这些常量叫做枚举量

    1、可以用枚举名称来声明这种类型的变量:

    spectrum band;

    2、可以讲枚举量赋给这些枚举类型的变量:

    band=blue;  //正确
    
    band=2000; //错误,超出枚举范围

    3、枚举只有复制运算,没有为枚举定义算数运算:

    band=orange;        //正确;
    ++band;             //错误
    band=orange+red;   //错误

    4、枚举量是整形的,可被提升为int类型,但int类型不能自动转化为枚举:

    int color=blue;  //正 确,枚举量是整型
    band=3;       //不正确,int类型不能转换为枚举类型
    color=3+red;    //正 确,color的枚举量为int型,red+3也转化为int型

    5、如果int值在枚举范围内(有效的),则可以通过强制类型转换,将他赋值给枚举变量:

    band=spectrum(3); //将int型3转化为枚举类型

    6、如果int型数值不在枚举范围内,进行强制类型转换,结果是不确定的:

    band=spectrum(40003); // undefined

    二、枚举量的值,取值范围

    1、显示的赋值

    enum bits{one=1,two=2,four=4,eight=8};

    2、非显示赋值

    enum bigstep{first,second=100,third};  //first为0,third为101
    enum{zero,null=0,one,numer0_uno=1};    //zero为0,one为1

    3、取值范围

    enum bits{one=1,two=2,four34,eight=8};
    bits myflag;
    myflag=bits(6);//正确,6不是枚举值,但是它在1~8中间
  • 相关阅读:
    Sqlserver查询表结构信息-字段说明、类型、长度等信息
    SurfaceView和GLSurfaceView
    OpenGL ES绘制一个图形
    第一章 介绍opengles
    opengles 系列 说明
    Box2d
    Opengles
    SoundPool播放多个文件,无法正常播放的问题
    LetCode刷题
    Open GL ES英文书籍机器翻译--第一章 介绍OpenGl es2.0
  • 原文地址:https://www.cnblogs.com/holyson/p/3951254.html
Copyright © 2020-2023  润新知