提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
提示:以下是本篇文章正文内容,下面案例可供参考
强类型枚举
enum class Color{red,blue,green};
Color c{Color::red};//使用
事实上,枚举类型只是整型值。red,blue,green的实际值分别是0,1,2,还可以为枚举成员指定整型值
enum class Color
{
red,//0
blue = 10,
green//11
};
Color c{Color::red};//使用
默认情况下,枚举值的基本类型是整形,但可采用以下方式加以改变
enum class Color:unsigned long
{
red,//0
blue = 10,
green//11
};
对于enum class,枚举值名不会自动超出封闭的作用域,这意味着它们不会与定义在父作用域的其他名字冲突。所以不同的强类型枚举可以拥有同名的枚举值。例如一下两个枚举是完全合法的
enum class State{Unknow,Started};
enum class Error{None,Unknow}
从c++20开始,可以使用using enum声明来避免使用枚举值的全名。
using enum State;
State s{Unknow};
using State::Unknow;
State s{Unknow};
s = State::Started;
文章详细介绍了C++中的强类型枚举enumclass的用法,包括枚举成员的默认值和类型指定,以及如何通过usingenum在C++20中简化枚举值的引用,强调了强类型枚举的命名空间隔离和防止类型冲突的特点。
1282

被折叠的 条评论
为什么被折叠?



