zoukankan      html  css  js  c++  java
  • C++(浅析枚举类型-enum)

    枚举类型

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

    如果一个变量只有几种可能的值,可以定义为枚举(enumeration)类型。所谓"枚举"是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。

    创建枚举,需要使用关键字 enum。枚举类型的一般形式为:

    enum enum-name { list of names } var-list;
    enum-name 是枚举类型的名称。名称列表 { list of names } 是用逗号分隔的

    eg1:
      
    enum color { red, green, blue } c;//定义了一个名为color的的枚举类型,c是枚举变量。
      c = blue;//给枚举变量C赋值 c = blue
    eg2:
      
    默认情况下,第一个名称的值为 0,第二个名称的值为 1,第三个名称的值为 2,以此类推。但是,您也可以给名称赋予一个特殊的值,只需要添加一个初始值即可。例如,在下面的枚举中,green 的值为 5。
      enum color { red, green=5, blue };

      在这里,blue 的值为 6,因为默认情况下,每个名称都会比它前面一个名称大 1。

    eg:

    #include <iostream>
    using namespace std;

    int main()
    {
    enum school{teacher,student,headmaster} a,b,c;
    a=school(0);
    b=student;
    c=headmaster;
    cout<<a<<endl;
    cout<<b<<endl;
    cout<<c<<endl;
    cout << "Hello World "<< endl;
    return 0;
    }

    为什么要用枚举呢?

    看看这个例子:

    #include<iostream>
    using namespace std;
    void main()
    {
        int per=0;
        switch(per)
        {
        case 0:
            cout<<"中国人,牛!"<<endl;
            break;
        case 1:
            cout<<"美帝人,黑!"<<endl;
            break;
        case 2:
            cout<<"英国佬,才!"<<endl;
            break;
        default:
            break;
        }
    }

     //对比

    #include<iostream>
    using namespace std;
     
    enum Person
    {
        Chinese,American,English
    };
     
    void main()
    {
        Person per=American;
        switch(per)
        {
        case Chinese:
            cout<<"中国人,牛!"<<endl;
            break;
        case American:
            cout<<"美帝人,黑!"<<endl;
            break;
        case English:
            cout<<"英国佬,才!"<<endl;
            break;
        default:
            break;
        }
    }
     
    看了之后知道理解了一点,但感觉也就那样。

    参考:http://www.cnblogs.com/shrimp-can/p/5171110.html

  • 相关阅读:
    The Brain vs Deep Learning Part I: Computational Complexity — Or Why the Singularity Is Nowhere Near
    unity3d NGUI多场景共用界面制作
    python第三方库系列之十九--python測试使用的mock库
    oracle之单行函数
    Andropid自己定义组件-坐标具体解释
    [WebGL入门]二,開始WebGL之前,先了解一下canvas
    【BZOJ2318】【spoj4060】game with probability Problem 概率DP
    苹果改版之后,关于隐私协议加入的问题解决方式
    Binary Tree Level Order Traversal II
    首届中国智慧城市协同创新峰会将于6月20日在大连隆重举行
  • 原文地址:https://www.cnblogs.com/bhlr/p/6685136.html
Copyright © 2011-2022 走看看