啃书系列持续更新ing,点赞和关注是对萌新博主莫大的鼓励。
系列文章:
啃书《C++ Primer Plus》之 C++ 函数指针
啃书《C++ Primer Plus》之 C++ 名称空间1
啃书《C++ Primer Plus》之 C++ 名称空间2
啃书《C++ Primer Plus》之 C++ 引用
啃书《C++ Primer Plus》之 const修饰符修饰 类对象 指针 变量 函数 引用
枚举是C++语言基础知识点,提供了一种创建符号常量的方式,这种方式定义符号常量更集中,也更清晰明了,但也有它的弊端。下面就来梳理一下有关枚举的一些概念。包括两种常见的枚举创建形式以及有关枚举局限的一些讨论,内容导图如下:
枚举类型
在介绍写法和用法之前,我们需要先来认识一下枚举需要的关键字: enum
这个长得很像 emm (博主在学习它之前一直把它当做emm来看待) 的关键字的全拼是 enumeration ,它的意思就是枚举。代表着列举某些常用量的意思,这和它批量定义常量的作用是很搭的。
在知道了枚举的关键字之后,下面我们来说说它的经典用法:枚举类型
创建枚举类型
要想使用枚举类型,必须先创建它 (这好像是句废话) 。创建它的语法规则如下:
enum 枚举类型名{常量名1,常量名2...};
当然,这里的类型名是可以省略的,那样,我们就仅仅使用枚举的规则创建了几个常量。
写成代码,举个粟子:
enum numbers{
ZERO,ONE,TEN};
enum {
SPRING,SUMMER};
那么,我们不禁要问:使用枚举定义常量,它的值如何定义呢?
需要介绍的是,枚举在创建时会默认隐式的为每一个常量赋值,它遵循下面两条规律:
- 第一个常量默认为0
- 非首个常量的值为前一个常量的值+1
所以,根据这两条规律,我们可以知道,当没有显式的赋值时,常量的值将会被默认的定为:0,1,2…
另外,除了隐式的赋予默认值,枚举还允许我们进行显式的赋值(不然定义常量可太麻烦了),即在定义枚举时使用 “=” 给常量赋值。这也是为什么上面的两条规律被拆开描述而不合在一起。
总结下上面说过的赋值规则,看下面的例子:
enum numbers{
ZERO,TWO = 2,TEN};
/*
ZERO = 0
TWO = 2
TEN = 3
*/
enum numbers{
ONE = 1,TWO = 2,TEN = 10}