枚举类型 enum以及enum class

Prefer scoped enums to unscoped enums

C++11的enum class 、enum struct 和 enum

enum class的发明就是为了避免强制转换

使用枚举的原因:

  • 提供程序的可读性的,代表的其实就是数字,比如一周有7天

  • 为了提供有限个选择,避免用户因错误输入其他信息,从而规范了程序的有效执行性。

匿名枚举

匿名枚举相当于静态常成员变量,enum class不支持匿名

C++匿名枚举

示例代码

#include <iostream>

enum sex
{
	women = 0,
	man = 1,
};

float hight[2] = { 0.0f };

sex returnEnum(int n)
{
	if (n > 0)
		return man;
	else
		return women;
}

void setHight(sex s, float h)
{
	hight[s] = h;
}
int main()
{
	setHight(women, 160);
	setHight(man, 170);

	std::cout << hight[0] << "	" << hight[1] << std::endl;

	int x = 0;
	switch (returnEnum(x))
	{
	case women:
		std::cout << "woemn" << std::endl;
	case man:
		std::cout << "man" << std::endl;
	default:
		break;
	}

	return 0;
}
原文地址:https://www.cnblogs.com/mmmmmmmmm/p/14688352.html