之前对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 3n";
break;
case Sharon:
cout<<"Sharon's birthday is April 22n";
break;
case Bill:
cout<<"Bill's birthday is December 19n";
break;
case Teresa:
cout<<"Teresa's birthday is February 2n";
break;
case John:
cout<<"John's birthday is June 17n";
break;
default:
cout<<"Invalid selectionn";
}
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
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/397473
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!