从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; //打印:2

	band = red;
	cout << band << endl; //打印 0

	//++band;   // not valid
	//band = red + yellow;  // not valid



	int color = blue; //valid
	cout << color << endl;   //打印   4

	//band = 3;   // invalid;

	color = red + 3; //valid
	cout << color << endl;   //打印 3


	band = (spectrum)2;  // valid
	cout << band << endl;  // 打印 2


	band = (spectrum)2000;   //不适当的值进行类型强转。
	cout << band << endl;

	//设置枚举变量的值
	bits mbits;
	mbits = one;
	cout << mbits << endl;  //打印   1


	bigstep mbigstep;
	mbigstep = third;
	cout << mbigstep << endl; // 打印  101

	int number = zero;
	cout << number << endl;   //打印 0
	number = love;
	cout << number << endl;   //打印  1
	cout << numero_uno << endl;   //打印  1
      

	/*
		枚举的取值范围,
		下面的代码中, 6不是枚举值,但它位于枚举的取值范围内。
	*/
	bits myflag;
	myflag = (bits)6;



	/*
		枚举的取值范围,

		找上限:先找到枚举量的最大值,然后找大于这个最大值得、最小的2的幂,然后减1便是上限。
		例如  bigstep 中 最大枚举值是101 ,在2的幂中,比这个数大的最小值是 128 所以上限是127

		找下限:如果枚举量的最小值不小于0, 那下限就是0 否则采用找上限的方法,但加上负号。
		例如: 如果最小的枚举量是-6 比它小的、最大的2的幂是-8(加上负号),因此下限为 -7

	*/

   
  
}  

猜你喜欢

转载自android-zhang.iteye.com/blog/1995405