从C到Cpp——三、C++中的枚举

一、枚举

1--

C++中的enum工具提供了一种建立创建符号常量的方式。

enum color{red,orange,yellow,green,blue,violet,purple};

这一语句,让color成为枚举类型的名称,就像结构的类型名一样;同时,让red等作为符号常量,对应整数0~6。这些常量被称为枚举量。也就是说,这个操作和下面的一段代码差不多:

const int red=0;
const int orange=0;
const int yellow=2;
const int green=3;
const int blue=4;
const int violet=5;
const int purple=6;

2--

通过枚举名可以声明枚举类型的变量,这一变量有一些特殊的性质

color a;
//和C++的结构变量声明一样,可以去掉前面的enum了

a:可以将枚举量赋给枚举变量,也可以直接进行初始化:

#include <iostream>
enum color{red,orange,yellow,green,blue,violet,purple};

int main(void)
{
	color r=red;
	color b;
	b=blue;
	
	enum color y=yellow;
	enum color v;
	v=violet;
}

(从中看出,enum可以省略,也可以不省略)

b:将一个非enum的值赋给enum变量会出错(除非进行强制类型转换)

c:enum变量之间没有定义运算符

#include <iostream>
enum color{red,orange,yellow,green,blue,violet,purple};

int main(void)
{
	color r;
	color b;
	
	r=0 //非法
	r++; //非法 
	v=blue+orange; //非法
	 
	return 0; 
}

(blue+orange由于自动的类型转换,其实是合法的,但不能将值赋给enum型变量)

3--枚举变量的值是可以认为设置的

enum bits{one=1,two=2,four=4,eight=8};
enum bigstep{first,second=100,third};

注意,指定的值必须是整数。对于bigstep,first在默认情况下为0,而后面没有被初始化的枚举量的值都比前面的枚举值大1.故third的值是101。

也可以如下设置多个枚举值相同的枚举量:

enum{zero,null=0,one,first=1};

这里zero和null的值都是0,one和first的值都是1.

和struct一样,枚举也可以省略类型名,但这样就不能创建枚举型变量了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值