其实这是在博主我做实验时遇到的一个非常简单的问题,但是花了半个小时竟然没有找到一篇合适的资料来介绍这么一个简易的工作。所以自己跟大家介绍一下。
关于枚举定义的内容不多说,开门见山,定义如下枚举类型:
enum Animals{
cat=0, dog, horse, mouse, limit=4
};
int main(){
Animals ani = cat;
cout<<ani; //输出ani:0
ani++; //报错:非法类型转换
}
发现虽然枚举类型的每个元素都是整数,但是++操作后不能赋值给原对象,就更不用说你想遍历它了。而且C++没有提供枚举类型的迭代器。所以你就把它当成两个类型之间的强制类型转换就好。而且你可以定义常量(如limit)作为枚举中遍历输出的范围限制。所以:
for(Animals ani=cat ;ani<limit; ani=(Animals)(ani+1)){
cout<<ani<<" ";
}
嘿!完美!