1 enum class MyEnum{ 2 P1 = 1, 3 P2, 4 P3, 5 P4, 6 P5 7 }; 8 9 MyEnum myEnum = MyEnum::P2;
使用作用域的方式获取并限定P2的值。之所以要使用作用域,是为了避免歧义。比如考虑以下情况
enum class Enum1{ P1 = 1, P2 = 2 }; enum class Enum2{ P1 = 10, P2 = 11 };
两个枚举,里面的元素名字一样,但是如果还是执行 Enum1 myEnum = P2 的话,会出现歧义:这个P2到底是谁的P2。所以c++11中推出了这种表达方式
作用域内枚举不能直接通过cout输出,可以把他转化为int型
cout << int( myEnum ) << endl;
欢迎补充,一同进步