写在前面
本篇文章为自定义类型系列讲解的第二篇,而本篇文章讲解的时自定义类型的第二部分内容——枚举。本篇文章将对枚举内容详解,希望对你的枚举学习有所帮助。
枚举
枚举,也就是列举。现实生活中有很多这种可以列举出来的事物,比如星期一星期二这样的有限的天数,性别的种类,月份等等。
枚举类型的定义
以下几个为枚举类型的定义演示:
enum day//星期
{
Mon,
Tues,
Wed,
Thur,
Fri,
Sat,
Sun
};
enum gender//性别
{
male,
female,
unknown
};
上面的enum day
、enum gender
就是枚举类型,而括号内的内容就是枚举类型的可能取值,也叫枚举常量。这些枚举常量都是有值的,默认是从0开始,后面每一个常量值递增1。当然也可以手动取值,对于取值后的枚举常量,其后面的值也会根据此常量值相应改变,例如:
enum color
{
RED = 2,
BLUE = 4,
GREEN = 8
};
enum Example
{
Example1,//0
Example2 = 4,//4后面的值依次递增
Example3,//5
Example4,//6
Example5,//7
};
枚举的优点
对于以上定义,用#define
同样可以完成,但为什么要使用枚举呢?
枚举的优点:
- 增加代码可读性和可维护性。
- 和
#define
定义的标识符相比,枚举有类型检查,更严谨。 - 防止命名污染(封装)。
- 便于调试。
- 使用方便,一次可以定义多个常量。
枚举的使用
enum Example
{
Example1,//0
Example2 = 4,//4
Example3,//5
Example4,//6
Example5,//7
};
int main()
{
enum Example a = Example1;//只能拿枚举常量给枚举变量赋值,避免出现类型差异
a = 4;//虽然在我使用上的vs编译器上能编译成功,但是这是一个危险且非法的赋值
return 0;
}
结语
自定义类型第二部分到这里就结束了,非常感谢各位读者能读完这篇文章,如果你觉得做的还不错的话,可以点赞收藏分享,让更多的朋友知道。当然,如果你觉得文章有什么问题的话也欢迎在评论区留言或私信告诉我哦!下期再会!
彩蛋
在下方的两个仓库可以获取我这篇文章的源码哦。
gitee:路径:Custom type\enum
GitHub:路径:Custom type\enum