c++;错误:与‘;不匹配;运算符-=’; 我对C++比较陌生。作为一个项目,我正在重写我用python编写的一个小游戏(我从未让它正常工作)。在编译过程中,我遇到以下错误:错误:与“operator-=”不匹配 我知道这个操作符存在于C++中,那么为什么我会得到这个错误?< /P>

c++;错误:与‘;不匹配;运算符-=’; 我对C++比较陌生。作为一个项目,我正在重写我用python编写的一个小游戏(我从未让它正常工作)。在编译过程中,我遇到以下错误:错误:与“operator-=”不匹配 我知道这个操作符存在于C++中,那么为什么我会得到这个错误?< /P>,c++,compiler-errors,operators,C++,Compiler Errors,Operators,代码: void rpg(){ cout-psg; 开关(psg){ 案例1: m=“巨魔”; mhp=80; 打破 案例2: m=“地精”; mhp=35; 打破 案例3: m=“龙”; mhp=120; } 库塔; 如果(wa==“火焰斜线”){ 原因是没有操作符-=。有+=,它附加到现有字符串,但是操作符-=的语义不清楚 除了这个明显的问题外,dgnrd函数的参数类型与您传递给它的参数类型不匹配。原因是没有操作符-=。有+=,它附加到现有字符串,但是操作符-=的语义不清楚 除了这个明显的问

代码:

void rpg(){
cout-psg;
开关(psg){
案例1:
m=“巨魔”;
mhp=80;
打破
案例2:
m=“地精”;
mhp=35;
打破
案例3:
m=“龙”;
mhp=120;
}
库塔;
如果(wa==“火焰斜线”){
原因是没有操作符
-=
。有
+=
,它附加到现有字符串,但是操作符
-=
的语义不清楚

除了这个明显的问题外,
dgnrd
函数的参数类型与您传递给它的参数类型不匹配。

原因是没有操作符
-=
。有
+=
,它附加到现有字符串,但是操作符
-=
的语义不清楚


除了这个明显的问题外,
dgnrd
函数的参数类型与您传递给它的参数类型不匹配。

您似乎在字符串上运行-=运算符,而不是int。
mhp
是一个
字符串,因此以下语句导致编译错误:

mhp -= 

您似乎在字符串上运行-=运算符,而不是int。
mhp
string
,因此以下语句导致编译错误:

mhp -= 
dgn()

int mhp;
这是合理的,因为它是一个数字量

但是你的helper函数声明

string mhp
在参数列表中,这应该导致函数调用中实际参数和形式参数之间的类型不匹配错误

dgnrd(m, mhp, whp, mahp, hhp);
将其修复到
int&mhp
,几个问题将立即消失

请注意,创建引用的
&
。这使函数与其调用方共享变量,以便对调用方的副本进行更改。否则(在传递值中)函数返回时,函数内部的所有更改将消失。

dgn()
中,您必须

int mhp;
这是合理的,因为它是一个数字量

但是你的helper函数声明

string mhp
在参数列表中,这应该导致函数调用中实际参数和形式参数之间的类型不匹配错误

dgnrd(m, mhp, whp, mahp, hhp);
将其修复到
int&mhp
,几个问题将立即消失


请注意,创建引用的
&
。这使函数与其调用方共享变量,以便对调用方的副本进行更改。否则(在传递值中)函数返回时,函数内部的所有更改都将消失。

元音。不要害怕它们。元音。不要害怕它们。