现在我们有这样两个枚举的声明enum color0{
red,
green,
blue
};
enum color1{
red,
yellow,
blue
};这样的代码是会发生错误的,red 和 blue 发生了冲突,因为他们都可以在全局直接访问到,对于这种情况我们就可以使用带作用域的枚举值, 其实就是加了一个 class 关键字示例enum class color0{
red,
green,
blue
};
enum class color1{
red,
yellow,
blue
};这时候我们的代码就可以正常编译通过了,但是我们不可以在全局直接访问到枚举值了。如果想访问枚举值,要加作用域示例color0::red;总结带作用的枚举值是c++11中添加的新特性,它解决了不同枚举值之间重名的问题,也让代码的层次更为清晰,减少我们在编码过程中可能出现的错误。语法//声明
enum class 枚举名{
枚举值...
}
// 访问
枚举名::枚举值;
默认分类
· 2024-05-03
· 56 人浏览
lelele