C++中的enum类型

来源:互联网 发布:vs2017 golang 编辑:程序博客网 时间:2024/05/15 02:38

enum的基本结构:

enum 枚举名{
标识符[=整型常数],
标识符[=整型常数],


标识符[=整型常数],

} 枚举变量;
如果枚举没有初始化, 即省掉”=整型常数”时, 则从第一个标识符开始,
依次
次赋给标识符0, 1, 2, …

enum类型的本质可以参考这个博客:
enum类型的本质:
http://www.cppblog.com/chemz/archive/2007/06/05/25578.html

下面是我自己试探的几个:

1.enum类型的成员是整型的,所以可以如下:

#include <bits/stdc++.h>using namespace std;int main(){    //enum初始化的类型必须是Integer.//--------------------------------------------------------------    enum Fruit {apple, pear, orange, banana};    //enum 类型,如果不初始化成员的值,默认从0开始递增    cout << apple << " " << endl;    cout << banana << " " << endl;    for (int i = apple; i <= banana; i++)    {        switch(i)        {            case apple:cout << "apple" << endl;break;            case pear:cout << "pear" << endl;break;            case orange:cout << "orange" << endl;break;            case banana:cout << "banana" << endl;break;            default:break;        }    }    return 0; }    /*    输出:    apple    pear    orange    banana    */

2.对相应的成员值进行修改,如下:

#include <bits/stdc++.h>using namespace std;int main(){//------------------------------------------------------------------------    //如果初始化了    enum loop{one=3, two=2, three=1};    for (int i = three; i <= one; i++)    {        switch(i)        {            case one:cout << "3" << endl;break;            case two:cout << "2" << endl;break;            case three:cout << "1" << endl;break;            default:break;        }    }    return 0;}    /*    输出:    1    2    3    */

3.如果enum类型的成员只有部分初始化了,那么下一个成员的值,将从初始化成员的值开始+1递增。

#include <bits/stdc++.h>using namespace std;enum hey{one = 3,two,three = 8,four,five,six,seven};int main(){    enum hey aenumobject = two;    cout <<  aenumobject << endl;    aenumobject = three;    cout << aenumobject << endl;    aenumobject = four;    cout << aenumobject << endl;    aenumobject = five;    cout << aenumobject << endl;    aenumobject = six;    cout << aenumobject << endl;    aenumobject = seven;    cout << aenumobject << endl;    return 0;} //输出    /*    4    8    9    10    11    12    */
0 0
原创粉丝点击