概述
枚举
如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。
枚举是一种自定义数据类型,具有这种数据类型的量称为枚举常量。由于枚举常量实际上是一个int型常量,故称为枚举常量。
枚举是若干具有名字的整型常量的集合。这些整型常量组成了枚举表,枚举表中的每一项称为一个枚举符。枚举符就是一个有名字的常量,枚举量便是这个枚举表中的某一个枚举符。
枚举类型的定义格式为:enum <枚举名> { <枚举表> };
枚举量的定义格式为:enum <枚举名> <枚举量名表>;
例如:
enum day {Sun=7,Mon=1,Tue,Wed,Thu,Fri,Sat};
enum day d1,d2,d3;
则d1=Sun;
d2=Mon;
d3=Sat;都是正确的赋值方式。
而d1=Red;(Red不是枚举量d1所对应的枚举表中的枚举符)
d2=1;(枚举量不能直接赋予数值量,如果用枚举符所代表的int型值时,则为d2=(enum Mon)1)都是错误的赋值方式。
输出一个枚举量的值是int型数值,而不是枚举符:
cout<<d1<<','<<d2<<endl;
输出的结果为:7,1
使用枚举量的优点:
1,枚举量的赋值范围被限定,能够提高程序中数据的安全性。给一个枚举量赋值时,若超出了它的枚举表的范围,则会发出编译出错。
2,使用枚举量会增加可读性,因为给一个简单的数值命名为枚举符,则可做到见名知意。
3,被说明的枚举量要进行类型检查,这样也会提高数据的安全性。
枚举常量和宏定义的区别与联系:
宏和枚举的主要区别是作用的时间和存储形式不同。宏定义是在编译预处理阶段作用的,也就是在编译预处理时,就会进行宏替换,将程序中的所有宏名替换为所定义的常量名,而枚举则是在程序运行之后才起作用的。宏定义不分配内存空间,而枚举常量存储在数据的静态存储区中(这一点一定要注意)。宏只占用代码段的空间,而枚举除了占用代码段空间外,还耗费CPU资源。但是不能说宏就一定比枚举好,因为你定义一大堆的宏总是非常的不方便的。
举一个例子:
<span style="font-size:18px;">#include <iostream.h>
#define PI 3.14159265 \宏定义
void main()
{
enum color {red=10,yellow=20,white,green,black}c1,c2; \定义一个枚举常量(默认的是int型)
c1=black; \进行枚举量赋值
c2=red;
double r=1.2,s;
s=2*PI*r; \进行宏替换
cout<<c1<<','<<c2<<endl;
cout<<s<<endl;
cout<<"c1+c2"<<"="<<c1+c2<<endl;
cout<<"r+s"<<"="<<r+s<<endl;
cout<<"c1+r"<<"="<<c1+r<<endl; \自动转化为更高的数据类型(int转化为double)
}
</span>
最后
以上就是傲娇钥匙为你收集整理的C++自定义数据类型之枚举的全部内容,希望文章能够帮你解决C++自定义数据类型之枚举所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复