介绍一下C++中enum(枚举)基本用法

enum枚举介绍:

C++中,enum(枚举)是一种用户自定义的数据类型,它允许程序员定义一系列命名的整型常量。枚举类型的主要目的是增加程序的可读性,尤其是在描述状态量或者一组相关的常量时非常有用。

枚举类型的定义格式如下:

enum <类型名> { <枚举常量表> };
其中,<类型名>是自定义的枚举类型名称,<枚举常量表>是由枚举常量构成的列表,枚举常量是以标识符形式表示的整型量,表示枚举类型的取值。枚举常量表中的各个枚举常量之间以逗号分隔,且必须各不相同。枚举常量的值类型与条件表达式相同,默认状态下,这个整数就是所列举元素的序号,序号从0开始。

比如下面这个例子:

enum Color { RED, BLUE, WHITE, BLACK };
 

Color是枚举类型的名称,REDBLUEWHITEBLACK是枚举常量,它们分别代表红色、蓝色、白色和黑色

枚举常量的值:

枚举常量代表该枚举类型的变量可能取的值,编译器为每个枚举常量指定一个整数值。默认情况下,这个整数就是所列举元素的序号,序号从0开始。可以在定义枚举类型时为部分或全部枚举常量指定整数值,在指定值之前的枚举常量仍按默认方式取值,而指定值之后的枚举常量按依次加1的原则取值。

 

enum Fruit { APPLE, ORANGE, BANANA = 1, PEACH, GRAPE };

在这个例子中,APPLE的值为0,ORANGE的值为1,BANANA的值为1(因为它被显式指定),PEACH的值为2,GRAPE的值为3。

枚举变量的使用

定义枚举类型后,可以定义该枚举类型的变量。枚举变量的值只能取枚举常量表中所列的值,即整型数的一个子集。枚举变量占用内存的大小与整型数相同。枚举变量只能参与赋值和关系运算以及输出操作,参与运算时用其本身的整数值。

Color favoriteColor = RED;

在这个例子中,favoriteColor是一个Color类型的变量,它被赋值为RED

强类型枚举(C++11及以后版本)

C++11引入了强类型枚举(enum class),它提供了更好的类型安全性和作用域控制。强类型枚举的成员(枚举值)具有枚举类型的作用域,这意味着你不能在枚举类型的作用域之外直接使用枚举值,除非使用枚举类型名和作用域解析运算符 :: 来指定它们。

例如,定义一个强类型枚举:

enum class Color : unsigned int { RED, GREEN, BLUE };

在这个例子中,Color是枚举类型的名称,REDGREENBLUE是枚举值,它们的底层类型被指定为 unsigned int。要访问这些枚举值,需要使用 Color:: 前缀:

比如:

Color myColor = Color::RED;

强类型枚举不会隐式地转换为其他类型(如 int),这有助于防止意外的类型转换和类型错误。如果需要将强类型枚举值转换为其他类型,必须显式地使用类型转换运算符(如 static_cast)。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值