默认情况下,第一个枚举值为0,其它的值为 前一个值加1 在定义枚举类型时,也可显式地给枚举值指定 值。例如: enum Day {SUN=7,MON=1,TUE,WED,THU,FRI,SAT}; TUE为2, boo类型可看成是C++语言提供的一个预定 义的枚举类型: enum bool false,true }
◼ 默认情况下,第一个枚举值为0,其它的值为 前一个值加1。 ◼ 在定义枚举类型时,也可显式地给枚举值指定 值。例如: • enum Day {SUN=7,MON=1,TUE,WED,THU,FRI,SAT}; • TUE为2,... ◼ bool类型可看成是C++语言提供的一个预定 义的枚举类型: • enum bool { false, true };
枚举类型变量的定义 先定义枚举类型,再定义枚举类型变量: enum Day {SUN,MON,TUE,WED,THU,FRI,SAT}; ·Dayd1; 或 enum Day d1;//C语言的写法 枚举类型和枚举类型变量同时定义: enum Day {SUN,MON,TUE,WED,THU,FRI,SAT}d1; 或 0 enum {SUN,MON,TUE,WED,THU,FRI,SAT}d1;
枚举类型变量的定义 ◼ 先定义枚举类型,再定义枚举类型变量: • enum Day {SUN,MON,TUE,WED,THU,FRI,SAT}; • Day d1; 或 • enum Day d1; //C语言的写法 ◼ 枚举类型和枚举类型变量同时定义: • enum Day {SUN,MON,TUE,WED,THU,FRI,SAT} d1; 或 • enum {SUN,MON,TUE,WED,THU,FRI,SAT} d1;
枚举类型的运算 赋值 。一个枚举类型的变量只能在相应枚举类型的值集中取值。例如: Day day; ■day=SUN;/oK ▣day=l;/Error ·day=RED;/Error ·相同枚举类型之间可以进行赋值操作,例如: ■Dayd1,d2; -d2=d1; 可以把一个枚举值赋值给一个整型变量例如: int a; ■ a=d1;/OK,将进行类型转换 但不能把一个整型值赋值给枚举类型的变量, ▣d1=a;/Error d1=(Day)a;/OK,但不安全!
枚举类型的运算 ◼ 赋值 • 一个枚举类型的变量只能在相应枚举类型的值集中取值。例如: ◼ Day day; ◼ day = SUN; //OK ◼ day = 1; //Error ◼ day = RED; //Error • 相同枚举类型之间可以进行赋值操作,例如: ◼ Day d1,d2; ◼ d2 = d1; • 可以把一个枚举值赋值给一个整型变量例如: ◼ int a; ◼ a = d1; //OK,将进行类型转换 • 但不能把一个整型值赋值给枚举类型的变量, ◼ d1 = a; //Error ◼ d1 = (Day)a; //OK,但不安全!
比较 ·枚举值之间的比较为枚举值所对应的整数之间的比较。例: MON<TUE(结果为true) 算术运算 。运算时,枚举值将转换成对应的整型值。 ·对枚举类型进行算术运算的结果类型为算术类型。例如: Day d;int i; i d+1;//OK d=d+1;/Error,因为d+1的结果为int类型 d=(Day)(d+1)/OK 不能对枚举类型的值直接进行输入,但可以进行输出。 例如: Day d; cin >d;//Error cout<<d;/OK,将把d转换成int
◼ 比较 • 枚举值之间的比较为枚举值所对应的整数之间的比较。例: MON < TUE(结果为true) ◼ 算术运算 • 运算时,枚举值将转换成对应的整型值。 • 对枚举类型进行算术运算的结果类型为算术类型。例如: Day d; int i; ...... i = d+1; //OK d = d+1; //Error,因为d+1的结果为int类型。 d = (Day)(d+1) //OK ◼ 不能对枚举类型的值直接进行输入,但可以进行输出。 例如: Day d; cin >> d; //Error cout << d; //OK,将把d转换成int
枚举类型输入输出举例 #include <iostream> using namespace std; int main() Day d; int i; cin >i; switch (i) case 0:d SUN;break; case 1:d MON; break; case 2:d TUE; break; case 3:d WED; break; case 4:d THU; break; case 5:d FRI; break; case 6:d SAT;break; default:cout <"Input Error!"<endl;exit(-1);
枚举类型输入/输出举例 #include <iostream> using namespace std; int main() { Day d; int i; cin >> i; switch (i) { case 0: d = SUN; break; case 1: d = MON; break; case 2: d = TUE; break; case 3: d = WED; break; case 4: d = THU; break; case 5: d = FRI; break; case 6: d = SAT; break; default: cout << "Input Error!" << endl; exit(-1); }