zoukankan      html  css  js  c++  java
  • 【原创】一起学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中间
  • 相关阅读:
    Java自定义加密字符串算法题目
    约瑟夫环C语言实现
    Java实现字符串形式大数相加
    Python打印乘法表
    Andorid中HandlerThread使用小记
    Ubuntu下C++使用icu库检测字符编码
    小记
    胆大妄为【DDWW】实验十 团队作业6:团队项目用户验收&Beta冲刺
    胆大妄为【DDWW】 【Beta】Scrum meeting 4
    胆大妄为【DDWW】 【Beta】Scrum meeting 3
  • 原文地址:https://www.cnblogs.com/holyson/p/3951254.html
Copyright © 2011-2022 走看看