C++枚举的用法

C++枚举类型

C++枚举包含两种枚举类型:限定作用域的枚举类型不限定作用域的枚举类型.
C++枚举类型属于字面值常量类型


限定作用域的枚举类型

定义限定作用域的枚举类型的一般形式是:enum class name
比如:

C++枚举的用法

在限定作用域的枚举类型中,枚举成员的名字遵循常规的作用域准则,并且在枚举类型的作用域外是不可以访问的。
C++枚举的用法
C++枚举的用法
必须显示地访问枚举成员.

不限定作用域的枚举类型

不限定作用域的枚举类型定义时省略关键字class
C++枚举的用法
在不限定作用域的枚举类型中,枚举成员的作用域与枚举类型本身的作用域相同。

在默认情况下,枚举值从0开始,依次加一.不过我们可以指定枚举值
C++枚举的用法
枚举成员是const,因此在初始化枚举成员时提供的初始值必须是常量表达式.
C++枚举的用法
注意限定作用域的枚举类型不会进行隐式转换,只有不限定作用域的枚举类型的枚举成员才会进行隐式转换。


指定enum的大小

C++枚举的用法
enum是由某种整数类型表示的。我们可以在enum的名字后加上冒号以及我们想在该enum中使用的类型,如果没有指定,默认使用int类型.