站长网 语言 EasyC++,枚举值的应用

EasyC++,枚举值的应用

大家好,我是梁唐。这是EasyC++系列的第14篇,咱们来聊聊C++当中的枚举值。想要追求更好阅读体验的同学,可以点击文末的「阅读原文」,访问github仓库。枚举简介C++当中提供了枚举操作,我们可以使用enum关键字创建枚举类型。这种方式创建的为符号常量,可

大家好,我是梁唐。

 

这是EasyC++系列的第14篇,咱们来聊聊C++当中的枚举值。

 

想要追求更好阅读体验的同学,可以点击文末的「阅读原文」,访问github仓库。

 

枚举

简介

 

C++当中提供了枚举操作,我们可以使用enum关键字创建枚举类型。

 

这种方式创建的为符号常量,可以代替const关键字,并且还可以自定义名字,让代码可读性更强。如:

 

enum color {red, blue, orange, white, black}; 

在这一句语句当中完成两件事,首先我们创建了一个新的变量类型叫做color,这是一个枚举类型。其次我们创建了一些符号常量,例如red,bule,orange这些。在默认状态下,会将这些枚举量赋值为整数,第一个枚举量red为0,第二个blue为1,以此类推。

 

当然我们也可以显示地给这些枚举量赋值,如:

 

enum color {red=3, blue=1, orange, white, black}; 

这样前面给定了数值的red和blue会按照我们给定的值进行赋值,而之后从orange开始,依次赋值成2,3,4.

 

使用

我们定义了枚举类型之后,可以当做正常类型来进行声明:

 

color a; 

由于color是一个枚举类型,所以当我们赋值的时候,只能赋值列举出来的类型,如果附上其他的值可能会出问题。根据编译器的不同出现的结果也不一样,有些编译器会报错,有些则只会给出警告。不管是报错还是警告,我们都不应该这么做:

 

color a = red; // OK 

color a = 10; // 报错或警告 

由于enum底层存储的是整型,所以有一些奇怪的操作是允许的,但是也强烈不建议这么做,也可能会有很大的风险。比如:

 

cout << red < blue << endl; // 比较大小 

cout << blue – red << endl; // 做加减法 

 

int c = red + 3; // 赋值给int 

这些操作在语法上都是允许的,但非常不推荐这么干,因为没有意义。枚举型当中每一个类型都有各自的逻辑含义,是不能拿来做计算的。虽然语法上可行,但逻辑上没有意义。

 

我们也可以使用强制转换将整型转成枚举类型:

 

color c = color(3); 

但同样不推荐,因为有可能数字3对应的枚举量并不存在,这也不会报错,但也许会影响程序的正确性。

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/biancheng/yuyan/2021/1103/19133.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部