zoukankan      html  css  js  c++  java
  • C++学习笔记(四):枚举

    枚举用来代替静态常量,优点就是可以确定值的范围,而常量则无法确定范围;

    常量表示法:

     1 const int TYPE_1 = 0;
     2 const int TYPE_2 = 1;
     3 const int TYPE_3 = 2;
     4 
     5 const int ONE = 0;
     6 const int TWO = 1;
     7 
     8 bool func(int type)
     9 {
    10     //范围检查
    11     if(type < 0 || type > 2) throw type;
    12     //执行的代码
    13     
    14 }

    枚举表示法:

     1 enum EType
     2 {
     3     TYPE_1 = 0,
     4     TYPE_2 = 1,
     5     TYPE_3 = 2
     6 };
     7 
     8 enum ENum
     9 {
    10     ONE = 0,
    11     TWO = 1
    12 };
    13 
    14 bool func(EType type)
    15 {
    16     //执行的代码
    17     
    18 }

    枚举的优点就是范围检查可以去掉,有编译器帮我们检查传递的数据是否正确。并且EType作为一个唯一存在的类型,如果传递ENum::ONE是会报错的,但是这种情况在静态常量中是可以通过的。

    不同于Java的枚举,C++的枚举只能赋整数值,不赋值会默认从0开始递增;

    枚举的值是可以重复的,如:

    1 enum EType
    2 {
    3     TYPE_1 = 0,
    4     TYPE_2 = 0,
    5     TYPE_3 = 0
    6 };

    这里的3个枚举只是值一致,但是任然是作为3个不同的类型存在的;

    枚举的值可以作为整形直接使用但是不能赋值一个数字到枚举类型上,枚举类型应该只接收同类型的枚举值;

  • 相关阅读:
    关于extern的用法
    建立CMenu菜单项,实现选中菜单项点击左键响应事件
    数据库常用语句
    圆周率的计算
    C++11中list特有版本的算法
    使用istream迭代器来输入输出数据
    C++中函数重载和函数覆盖的区别
    外置接口请求
    JSON转指定复杂对象
    FastDFS优化
  • 原文地址:https://www.cnblogs.com/hammerc/p/3965042.html
Copyright © 2011-2022 走看看