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中间
  • 相关阅读:
    封装好的AFN网络请求框架和MBProgress
    iOS定时器的使用
    iOS去除导航栏和tabbar的1px横线
    移动端加解密
    改变字符串中部分字符传的字体大小和颜色
    关于NSLog
    ipad开发:二维码扫描,摄像头旋转角度问题解决办法
    iOS-图文表并茂,手把手教你GCD
    计算富文本的高度
    jsp打印
  • 原文地址:https://www.cnblogs.com/holyson/p/3951254.html
Copyright © 2011-2022 走看看