zoukankan      html  css  js  c++  java
  • 枚举

    1.枚举类型的作用

    我们在写程序的时候,常常需要定义一组与对象相关的属性。例如某个函数形参类型定义为枚举类型,如果传递实参的时候不是枚举类型定义的枚举子,则编译出错,即使传递的值和枚举子的值一样,也会报错,除非强制转换成枚举类型。

    2.枚举类型的定义

    enum [enumeration name]

    {

    enumerator1[=value1],

    enumerator2[=value2],

    ...

    };

    枚举的定义以关键词enum开头,接着一个可选的枚举名,下来是由大括号{}包含着一个由逗号分隔的枚举子列表enumerators list。

    3.枚举子的类型和取值

    枚举子的类型就是它所在的那个枚举,默认第一个枚举子被赋值0,后面的枚举子取值是前面枚举子的值加1。

    4.枚举变量的定义、初始化和赋值

    例:

    enum some_big_cities {

     Guangzhou = 4, 

    Shenzhen    = 4, 

    Hongkong   = 4, 

    Shanghai    = 2, 

    Beijing         = 3, 

    };

    定义变量:some_big_cities my_city = Guangzhou;

    可以将枚举子、同类型的枚举变量直接赋值给枚举变量,但不能直接将一个整形赋值给一个枚举变量,除非强制转换。

    5.枚举与整形的关系

    整形值只能显示地转换成一个枚举值,但是,如果转换的结果位于该枚举值范围之外,其结果是无定义的。

    6.自定义运算符

    枚举是用户自定义类型,所以用户可以为它定义自身的操作,例如++或者<<等。但是,在没有定义之前,不能因为枚举像整型就可以默认使用,例如:
       enum SomeCities
    {
       zhanjiang,
       Maoming,
       Yangjiang,
       Jiangmen,
       Zhongshan
    };
    SomeCities oneCity;
    for (oneCity = zhanjiang; oneCity != Zhongshan; ++oneCity)
    {
       cout<<oneCity<<endl;
    }

    以上的++OneCity是没有定义的

  • 相关阅读:
    struct/enum/union加typedef与不加typedef
    拷贝构造函数、拷贝运算符、析构函数
    TextQuery程序
    动态内存-动态数组
    动态内存
    动态内存
    matlab文件处理
    [leetcode]_Best Time to Buy and Sell Stock I && II
    [leetcode]_Valid Palindrome
    [leetcode]_Pascal's Triangle II
  • 原文地址:https://www.cnblogs.com/justkong/p/5034389.html
Copyright © 2011-2022 走看看