让我们通过将其与#define预处理器进行比较来了解
例如:
#define JAN 1 #define FEB 2 #define MAR 3 #define APR 4
这些语句分别通过常量名称JAN,FEB,MAR和APR定义1、2、3和4。在这里,我们需要分别定义每个值。
但是,在“枚举”的情况下,无需定义每个值。我们可以通过称为“枚举”的名称来定义和访问不同的值(但整数/整数类型)。
它是一组不同类型的值,其值介于值的范围之间。
参考: http : //en.cppreference.com/w/cpp/language/enum
我们可以声明/定义如下的“枚举/枚举”:
enum month{ JAN=1,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,AUG,SEP,OCT,NOV,DEC}months; enum week{SUN=1,MON,TUE,WED,THU,FRI,SAT}days; enum bool{FALSE=0,TRUE}; enum escSeq{BACKSPACE='\b',NEWLINE='\n',HTAB='\t',VTAB='\v',RETURN='\r'};
注意:“枚举”相对于宏的最重要优点是:“枚举”具有其范围。这意味着“枚举仅在声明的块内可见”。
看程序:
#include <iostream> using namespace std; int main(){ enum week{SUN=1,MON,TUE,WED,THU,FRI,SAT}; enum week day; day = THU; cout<<"Week day number : "<<day<<endl; return 0; }
输出结果
Week day number : 5