一个关于枚举输出的例子
#include <iostream>
#include <iomanip>
using namespace std;
enum weekday
{
Sudnay,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
};
int main(int argc, char *argv[])
{
int i;
weekday d = Thursday;
cout << d << setw(10);
i = d;
cout << i << setw(10);
d = (weekday)6; // 这里不理解,请解释一下这种写法
cout << d << setw(10);
d = weekday(4); // 为什么输出是4,而不是Thursday?
cout << d << endl;
system("pause");
return 0;
}
程序输出是4 4 6 4
问题点数:20、回复次数:4Top
1 楼ugg(逸学堂(exuetang.net))回复于 2006-03-10 17:52:36 得分 10
d = (weekday)6; // 这里不理解,请解释一下这种写法
~~~~~~~~
6强制转换为枚举类型.就象其他强制转换一样..
d = weekday(4); // 为什么输出是4,而不是Thursday?
`~`~`~`~`~`~`~
枚举类型不是通过数字变成名称,而是通过名称变为数字.比如
Sudnay,// 默认为Sudnay=0;当然也可以指定从1开始,往下依次类推
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
这时候调用
weekday d = Thursday;
标示d的值为4,所以cout << d = 4;
在swtich中使用枚举类型如下
swtich(d)
{
case Sudnay:
break;
case Thursday:
break;
}Top
2 楼discory(discory)回复于 2006-03-11 12:32:56 得分 0
哦,第一个的写法我也是第一次看见,也不明白,哪个解释一下
Top
3 楼discory(discory)回复于 2006-03-11 18:22:25 得分 0
没人出来说吗Top
4 楼SEUU(三枝花)回复于 2006-03-11 21:56:39 得分 10
d = (weekday)6; // 这里不理解,请解释一下这种写法
~~~~~~~~
6强制转换为枚举类型.就象其他强制转换一样..
d = weekday(4); // 为什么输出是4,而不是Thursday?
`~`~`~`~`~`~`~
枚举类型不是通过数字变成名称,而是通过名称变为数字.比如
Sudnay,// 默认为Sudnay=0;当然也可以指定从1开始,往下依次类推
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
这时候调用
weekday d = Thursday;
标示d的值为4,所以cout << d = 4;
在swtich中使用枚举类型如下
swtich(d)
{
case Sudnay:
break;
case Thursday:
break;
}
这个兄弟说得不错啊,还要怎么说啊
还有,你的分多给我一点吧,我是来得分的,我只要星星!Top




