枚举,也就是列举。现实生活中有很多这种可以列举出来的事物,比如星期一星期二这样的有限的天数,性别的种类,月份等等。
以下几个为枚举类型的定义演示:
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