天天看点

c/c++ 枚举enum用法总结

传入switch的参数可以有两种类型:int和name

case1:switch传入参数为int类型

notice:就不用定义name类型的变量了

void test1()
{
	//传入switch的参数可以有两种类型:int和enum name
	//case1:switch传入参数为int类型
	//notice:就不用定义enum name类型的变量了
	enum name{ ZhangSan, LiSi, WangWu };
	int ival;
	cin >> ival;
	switch (ival){
	case ZhangSan:
		cout << "ZhangSan";
		break;
	case LiSi:
		cout << "LiSi";
		break;
	case WangWu:
		cout << "WangWu";
		break;
	default:
		cout << "error!";
	}
}
           

case2:switch传入参数为enum name类型

notice1:enum name类型变量定义并初始化方式

1.1:直接定义并初始化 name person = ZhangSan;

1.2:利用cin,读入类型是int,需要用(name)强转

notice2:定义name类型有两种方式

void test2()
{
	//传入switch的参数可以有两种类型:int和name
	//case2:switch传入参数为enum name类型
	//notice1:name类型变量定义并初始化方式
	//        1.1:直接定义并初始化 name person = ZhangSan;
	//        1.2:利用cin,读入类型是int,需要用(name)强转
	//notice2:定义name类型有两种方式
	enum name{ ZhangSan, LiSi, WangWu };
	name person = ZhangSan;//定义并赋初始值

	/****或者这样定义****/
	/*
	enum name{ ZhangSan, LiSi, WangWu } person;//但没有赋初值
	person =ZhangSan;//赋初始值
	*/

	int ival;
	cin >> ival;
	person = (name)ival;//将int强转为name

	//error
	//person = ival;

	switch (person){
	case ZhangSan:
		cout << "ZhangSan";
		break;
	case LiSi:
		cout << "LiSi";
		break;
	case WangWu:
		cout << "WangWu";
		break;
	default:
		cout << "error!";
	}
}
           

继续阅读