c++20读笔-枚举

文章详细介绍了C++中的强类型枚举enumclass的用法,包括枚举成员的默认值和类型指定,以及如何通过usingenum在C++20中简化枚举值的引用,强调了强类型枚举的命名空间隔离和防止类型冲突的特点。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


提示:以下是本篇文章正文内容,下面案例可供参考

强类型枚举

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;
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值