先声明一下:我的问题 不是 enum的定义。
翻了下C++Primer,也只对这个类型做了简短的介绍。baidu到的例子也看不出 这个类型 存在的理由。在实际应用中,有什么必须要用到这个结构的理由吗?我看了effective c++里面也提到,尽量用enum代替#define
但是代替之后怎么使用呢~?

解决方案 »

  1.   

    enum{
    a,
    b,
    c,
    d};

    a=0  b=1 c=2 d=3 就是这样用  
      

  2.   

    在 C++ primer 中应该有吧 
      

  3.   

    一般可以把出错的信息,状态等信息定义成枚举变量的形式,避免写大量的#define宏,使用的方法只要包含相应的头问你安是没有太大的区别,传递参数可以使用枚举变量
      

  4.   

    #define MAX1 16enum {MAX2 = 16};这样在程序中MAX2 可以像MAX1一样,作为一个常量来用。
    例如 for(int i = 0; i < MAX2; i++) {} 等 
      

  5.   

    对于你的一组类型的定义值,就用enumenum{
       red = 0,
       blue = 1,
       green = 2
       
    }
      

  6.   

    好处1:枚举的值由编译器保证递增(虽然也可以显式指定重复的值),不用程序员自己维护其数值,不容易出错,可随时修改,插入一个值非常简单,如果在递增的宏定义里插入一个值,可能需要调整一堆宏定义。
    好处2:枚举有类型检查,宏定义没有
    好处3:枚举保证所有的值具有相同的内存大小(默认是int),宏定义在不同的应用场合可能有不同的内存大小当然,宏的好处是非常多的,应用范围也比枚举广泛得多,但用于定义某些差别特征的整数时,还是枚举合适。