枚举类型 enum以及enum class
Prefer scoped enums to unscoped enums
C++11的enum class 、enum struct 和 enum
enum class的发明就是为了避免强制转换
使用枚举的原因:
-
提供程序的可读性的,代表的其实就是数字,比如一周有7天
-
为了提供有限个选择,避免用户因错误输入其他信息,从而规范了程序的有效执行性。
匿名枚举
匿名枚举相当于静态常成员变量,enum class
不支持匿名
示例代码
#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] << "\t" << 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;
}