C++中一个关于“枚举”的问题,请指教下,谢谢了哈!

程序代码是:#include<iostream>usingnamespacestd;enumgame_result{WIN,LOSE,TIE,CANCEL};intmai... 程序代码是:
#include<iostream>
using namespace std;
enum game_result {WIN,LOSE,TIE,CANCEL};
int main()
{
game_result result;
game_result omit = CANCEL;
int count;
for(count=WIN;count<=CANCEL;count++)
{
result = (game_result)count;
if(result == omit)
{
cout<<"比赛取消\n";
}
else
{
cout<<"比赛进行了";
if(result == WIN)
cout<<",我们赢了";
if(result == LOSE)
cout<<",我们输了";
cout<<"\n";
}
}
system("pause>null");
}
其中,在第11行的这句“result = (game_result)count;”请问下,为什么game_result要加个括号呢?我不加括号运行了下,就报错的...我用的是Dev-C++。
我是新手,请指教下哈!谢谢了哈!
展开
 我来答
yuyongguiyyg
2009-04-08 · 超过10用户采纳过TA的回答
知道答主
回答量:46
采纳率:0%
帮助的人:43.9万
展开全部
这是强制类型转换,count是整形,但result是枚举型,虽然数值是一样,但类型不一样,即存储结构不一样,c++是强类型语言,要求严格,比如你定义一个结构体 struct test,声明一个指针struct test *p,
给p赋NULL值,不能使用 p= null,而必须使用 p = (struct test)NULL;
是null也具有结构体的类型。
百度网友c2cca8b63
2009-04-08 · TA获得超过1342个赞
知道小有建树答主
回答量:653
采纳率:0%
帮助的人:767万
展开全部
这个不是与枚举有关的知识

game_result 是一个枚举的类型

这是把int型的count变量转换成枚举类型

double b;
int a=1;
b=(int)a;
与这个道理是一样的

当然也可以不这样写,这个是C式的写法,C++类型转换的写法是
result = game_result(count),它与result = (game_result)count是等效的
同理,b=(int)a也可以写成b=int(a)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhangyafei3020
2009-04-08 · TA获得超过418个赞
知道小有建树答主
回答量:474
采纳率:0%
帮助的人:0
展开全部
result = (game_result)count;
强制类型转换
简单的例子;
float a=10.1;
int b=(int)a;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
朴素派
2009-04-08 · TA获得超过2674个赞
知道小有建树答主
回答量:502
采纳率:0%
帮助的人:0
展开全部
这个是强制转换的意思,count本来是整形,通过那个转化为你自己定义的枚举类型,不然类型就不匹配,你如何将一个整形赋值给你自己定义的枚举类型呢?
公式:变量=(变量类型)变量; 这个很基本的啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
流星剑1988
2009-04-08 · TA获得超过237个赞
知道小有建树答主
回答量:425
采纳率:0%
帮助的人:209万
展开全部
count是具体的0、1、2、3,前面加了一个 (game_result)是类型转换,result不是0、1、2、3这样的形式。
也可是把括号放在后面,即:result = game_result(count);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式