C++11 作用域内枚举

时间:2022-04-13 22:52:44
 enum class MyEnum{
P1 = ,
P2,
P3,
P4,
P5
}; MyEnum myEnum = MyEnum::P2;

使用作用域的方式获取并限定P2的值。之所以要使用作用域,是为了避免歧义。比如考虑以下情况

enum class Enum1{
P1 = ,
P2 =
}; enum class Enum2{
P1 = ,
P2 =
};

两个枚举,里面的元素名字一样,但是如果还是执行 Enum1  myEnum = P2 的话,会出现歧义:这个P2到底是谁的P2。所以c++11中推出了这种表达方式

作用域内枚举不能直接通过cout输出,可以把他转化为int型

cout << int( myEnum ) << endl;

欢迎补充,一同进步