C++11 作用域内枚举
程序员文章站
2022-04-14 23:12:05
使用作用域的方式获取并限定P2的值。之所以要使用作用域,是为了避免歧义。比如考虑以下情况 两个枚举,里面的元素名字一样,但是如果还是执行 Enum1 myEnum = P2 的话,会出现歧义:这个P2到底是谁的P2。所以c++11中推出了这种表达方式 作用域内枚举不能直接通过cout输出,可以把他转 ......
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;
欢迎补充,一同进步