c++ enum 的枚举

之前对C++的enum 一直不是特别清晰,通过一些其他的博客学习了一下,记录一下这种数据类型的特点~

枚举数据类型的目的之一是符号名称有助于使程序自我解释。但是,由于这些名称不是字符串,它们仅在程序中使用。在编码的时候经常与switch 语句配合使用。

enum Roster{Tom = 1,Sharon,Bill,Teresa,John};

通过上面的语句,可以认为Tom 就是1, Sharon 就是2, 但是不能认为1就是Tom,2是Sharon。举数据类型的符号名称与整数值相关联。示例如下:

#include <iostream>
using namespace std;

enum Roster{Tom=4,Sharon,Bill,Teresa,John};

int main()
{
	int who;
	cin>>who;
	switch(who)
	{
	case Tom:
		cout<<"Tom's birthday is Junuary 3
";
		break;
	case Sharon:
		cout<<"Sharon's birthday is April 22
";
		break;
	case Bill:
		cout<<"Bill's birthday is December 19
";
		break;
	case Teresa:
		cout<<"Teresa's birthday is February 2
";
		break;
	case John:
		cout<<"John's birthday is June 17
";
		break;
	default:
		cout<<"Invalid selection
";
	}
    cout<<Tom+Tom<<endl;
    system("pause");
	return 0;
}  

c++不能直接使用int型,C++没有提供枚举类型的迭代器。发现虽然枚举类型的每个元素都是整数,但是++操作后不能赋值给原对象,所以你就把它当成两个类型之间的强制类型转换就好。而且你可以定义常量(如limit)作为枚举中遍历输出的范围限制

for(Roster person=Tom ; person<limit; person=(Roster)(person+1)){ 
    cout<<persn<<" "; // person <= John 
}
原文地址:https://www.cnblogs.com/wsl-hitsz/p/13717978.html