枚举类型

枚举类型的作用是将一组整型常量组织在一起。和类一样,每个枚举类型定义了一个新的类型。枚举属于字面常量类型。

C++11之后枚举类型分为两类:1.限定作用域的枚举类型 2.不限定作用域的枚举类型

定义

限定作用域的枚举类型 : enum class/struct name [:type]{逗号分隔的枚举成员列表};

不限定作用域的枚举类型:enum [name] [:type]{逗号分隔的枚举成员列表};

操作

1.初始化、赋值:枚举类型对象只能被其成员或同类型的其它对象初始化、赋值。

2.比较操作:枚举类型对象可同其它同类型的对象或同其成员进行==、!=比较。

作用域

限定作用域的枚举类型:枚举成员的作用域在枚举类型内部

不限定作用域的枚举类型:枚举成员的作用域与枚举类型一致

与整形的关系

限定作用域的枚举类型:不能隐式转换成整型

不限定作用域的枚举类型:可隐式转换成整型

整形不能隐式转换成枚举类型。

enum的存储类型

c++11可以指定编译器使用哪种整型来存储定义的枚举类型。如 enum class test : unsigned int {TEST1,TEST2};

如果不指定存储类型,则限定作用域的枚举类型使用int来作为存储类型,如果枚举成员的取值超过其表达范围会编译错误。

如果不指定存储类型,则不限定作用域的枚举类型使用什么类型由编译器负责,编译器只要保证存储类型够大可以存储所有成员即可,不同的编译器可能会使用不同的存储类型。

 

enum类型的前置声明

enum也可以进行前置声明,不过不限定作用域的枚举类型必须指明其存储类型。限定作用域的枚举类型不指明存储类型即被认为存储类型为int。

转载于:https://www.cnblogs.com/vsuu/p/4168034.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值