注册 登录
编程论坛 C++教室

枚举类型

biancku 发布于 2011-03-05 10:28, 457 次点击
#include<iostream>
using namespace std;
int main()
{
    enum workday{mon,tue,thr,thu,fri,sat,sun};
    workday i;
    for(i=mon;i<=sun;i++)  //为什么i++ 编译不能通过。
    {
        if(i<sat)
            cout<<"workday\n";
        else
            cout<<"retire\n";
    }
    return 0;
}
4 回复
#2
xishui7772011-03-05 13:37
因为枚举元素是常量,不是变量
#3
2011-03-05 17:10
楼上回答很正确   i++是先赋值  然后在把新内容赋值回去


常量不可改  所以就会报错
#4
lintaoyn2011-03-06 14:49
i++不能通过编译是因为,是没有重载workday operator++ (workday&,int);workday也是种用户定义的类型。
二楼的话是正确的,但没说明什么问题。(mon,tue,thr,thu,fri,sat,sun这几个才是常量)
#5
pangding2011-03-06 14:54
回复 4楼 lintaoyn
哦,不错。我也学了点东西。

现在我也弄不清楚枚举型,只在 C 里一些特定情况下用;在 C++ 里,至少我,很少使。
1