在实际编程中,如果有一个swith语句:先写两种让在大家比较一下
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
switch(a)
{
case0:
//。。。
break;
case1:
//。。。
break;
case2:
//。。。
break;
case3:
//。。。
break;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
switch(a)
{
caseRED:
//。。。
break;
caseYELLOW:
//。。。
break;
caseBLACK:
//。。。
break;
caseBLUE:
//。。。
break;
}
这两段代码一看就知道第二段更有可读性,更方便管理。不然像第一段维护时,会发现0是什么,1是什么,还要再去看代码。第二段看了就明白,是RED的时候,YELLOW的时候等。
哪像第二段要怎么才能实现呢?这就是C++里面的枚举的用处。
枚举就是定义一组常量,让这常量看起来更有意义。
C++
1
2
3
4
5
6
7
enumArrow
{
UP,//默认从0开始 值是整型
DOWN,//1
LEFT,//2
RIGHT
};
枚举enum和结构还是有不一样的地方,
枚举enum没有新定义类型,结构是一个新类型
这点可以从它们的定义看到,枚举的每个值没有类型,只有名字,结束用“,”
结构类的成员都有自己的类型,有变量名,结束用“;”。
其时枚举enum是整型变量。枚举enum的定义意义,以Arrow类型为例,它的取值只有4个。主要还是为了编程时方便管理,方便阅读,方便理解程序。
运用有非常多,如颜色枚举(enum)、季节枚举(enum)、月份枚举(enum)、星期枚举(enum)、音符枚举(enum)等等。
相关文章:dynamic_cast作用关键字dynamic_cast强制将一个类型转化为另外一种类型,并且在执行运行时时检查它保证它的合法性。如果你想在两个互相矛盾的类型之间转化时,cast的返回值将为NULL....
int作用int 关键字int 用来声明整型变量....
operator作用关键字operator 用于重载函数.在上面语法中用特殊符(#)描述特征的操作将被重载.假如在一个类中,类名应当被指定.对于一元的操作, parameter-list 应当为空, 对于二元的操作,在operator右边的 parameter-list 应当包含操作数 (在operand 左边的被当作 this通过)....
private作用属于私有类的数据只能被它的内部成员访问,除了friend 使用.关键字private 也能用来继承一个私有的基类,所有的公共和保护成员的基类可以变成私有的派生类....
default作用default swich语句中的缺省条件....
friend作用friend 关键字friend允许类或函数访问一个类中的私有数据....
mutable作用mutable 关键字mutable 忽略所有const 语句.一个属于const对象的mutable 成员可以被修改....
signed作用signed 关键字signed 用来修正数据类型,用来声明符号字符型型变量....
自定义类型结构struct结构就是将基本类型组合在一起形成一个新类型,结构struct主要目地,方便编程和管理代码。比如一个二维平面的点point,有两个值x,y;这时定义成结构struct,编程代码看起来会非常清楚。如果不定义成结构struct用两个变量,当然问题是可以解决,但这样项目变大时将会是个灾难。...
自定义类型联合union联合union与结构非常的类似,也是自定义类型。结构是将简单类型组成一起,联合union是也是将简单类型组在一起,但它占的内存是共用的。画个图应该会明白点。 联合还有很多运用,很多变化。只要记住一点就好,联合union是共用一块内存。这点记住了,不管再怎么运用变化,都能很快想明白。...