enum和enum class的使用

enum只能用在类外,并且作用域的范围为全局。

enum class既用在类外,又可以用在类内,用在类内作用域的范围为整个类,类外作用域全局。无论内外,只要用到里面的内容必须加上 枚举类::内容

c++11中引入了新的枚举类型---->强制枚举类型

enum [identifier] [: type]

{enum-list};

 

enum [class|struct] [identifier] [: type]

{enum-list};

参数说明:

identifier:指定给与枚举的类型名称。

type:枚举器的基础类型(默认int),所有枚举器都具有相同的基础类型,可能是任何整型。

enum-list:枚举中以逗号分隔的枚举器列表。 范围中的每个枚举器或变量名必须是唯一的。 但是,值可以重复。 在未区分范围的枚举中,范围是周边范围;在区分范围的枚举中,范围是enum-list 本身。

class:可使用声明中的此关键字指定枚举区分范围,并且必须提供identifier。 还可使用struct 关键字来代替class,因为在此上下文中它们在语义上等效。

 

如下为两者的简单示例:

enum Test

{

test1,

test2

};

int a = test1;//类型隐式转换,枚举常量无须限定

if (test1 == 0)

cout << "Hello world.";

 

enum class ErrorCode

{

ERROR_ONE,

ERROR_TWO,

ERROR_THREE

};

int num = static_cast<int>(ErrorCode::ERROR_ONE);//类型需要显示转换,而且枚举常量必须限定或

ErrorCode num = ErrorCode::ERROR_ONE;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值