You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++代码报‘no match for operator’及my_operation相关错误求助

C++代码错误原因解析

1. bool变量定义语法错误

代码中bool = true;这一行违反C++语法规则:定义变量时必须指定变量名,你只写了类型bool和赋值操作,没有给变量命名。正确写法应为类似bool is_running = true;的形式,给bool变量一个合法的标识符。

2. 枚举类型输入的运算符不匹配错误

my_operation是自定义的Operation枚举类型,C++标准库没有为枚举类型提供默认的>>输入运算符重载。你通过cin >> my_operation试图直接将输入的字符('M'/'A'/'D')赋值给枚举变量,编译器无法识别这种转换逻辑,因此抛出"no match for operator>>"错误。

3. switch分支的枚举成员引用错误

你在switch语句中使用case M:、case A:、case D:,但你的枚举类型定义的成员名称是Multiply、Add、Difference,'M'/'A'/'D'只是这些成员的赋值数值,并非成员名。编译器找不到M/A/D这些标识符,因此会报未定义相关错误。正确的分支写法应为case Operation::Multiply:(或省略域解析的case Multiply:)。

额外逻辑问题

代码中的do-while循环条件是while(true),属于死循环,循环永远不会终止,导致最后输出结果的代码cout<<"The result of the operation is "<<result<<endl;永远无法执行。

内容的提问来源于stack exchange,提问作者Alexis Aguilar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 07:10:29