从0学习C++ (六)枚举
#include <iostream>;#include <cmath>;#include <string>;#include <cstring>;/*枚举学习*/enum spectrum{red,orange,yellow,green,blue,violet,indigo,ultraviolet};enum bits{one = 1, two = 2,four = 4,eight = 8}; enum bigstep{first,second = 100,third};//只是用常量,而不创建枚举类型的变量enum {zero,null = 0,love,numero_uno = 1}; int main(){ using namespace std; spectrum band;band = yellow;cout << band << endl; //打印:2band = red;cout << band << endl; //打印 0//++band; // not valid//band = red + yellow; // not validint color = blue; //validcout << color << endl; //打印 4//band = 3; // invalid;color = red + 3; //validcout << color << endl; //打印 3band = (spectrum)2; // validcout << band << endl; // 打印 2band = (spectrum)2000; //不适当的值进行类型强转。cout << band << endl;//设置枚举变量的值bits mbits;mbits = one;cout << mbits << endl; //打印 1bigstep mbigstep;mbigstep = third;cout << mbigstep << endl; // 打印 101int number = zero;cout << number << endl; //打印 0number = love;cout << number << endl; //打印 1cout << numero_uno << endl; //打印 1 /*枚举的取值范围,下面的代码中, 6不是枚举值,但它位于枚举的取值范围内。*/bits myflag;myflag = (bits)6;/*枚举的取值范围,找上限:先找到枚举量的最大值,然后找大于这个最大值得、最小的2的幂,然后减1便是上限。例如 bigstep 中 最大枚举值是101 ,在2的幂中,比这个数大的最小值是 128 所以上限是127找下限:如果枚举量的最小值不小于0, 那下限就是0 否则采用找上限的方法,但加上负号。例如: 如果最小的枚举量是-6 比它小的、最大的2的幂是-8(加上负号),因此下限为 -7*/ }