lvalue required as left operand of assignment p2.getHealth() = p2.getHealth() - 1;
时间: 2024-05-28 22:12:34 浏览: 18
这个错误通常出现在你试图将一个非左值表达式赋值给一个变量或对象时。在这种情况下,你试图将一个函数调用的返回值赋给一个变量,而函数返回值并不是左值,不能作为赋值运算符的左操作数。
为了解决这个问题,你需要检查你的代码,并确保将赋值运算符应用于一个左值。如果你想在函数内部修改某个对象或变量的值,你需要将其作为函数参数传递,并在函数内部修改该参数的值,而不是将函数调用的返回值用作左值。
相关问题
g++: error error - lvalue required as left operand of assignment
这个错误通常是因为你试图将一个非 lvalue 的值赋给一个变量。lvalue 是指可以出现在赋值语句左边的值,也就是可以被赋值的值。例如,变量和数组元素都是 lvalue,而常量和表达式则不是。
你可以检查一下你的代码,看看是否有类似于以下的错误:
```cpp
5 = x; // 错误,5 不是 lvalue
```
如果你需要更具体的帮助,请提供更多的代码和上下文。
lvalue required as left operand of assignment (int)a = 80000;
这个错误是因为在赋值语句中,左边的表达式不是一个可修改的左值(lvalue),而是一个右值(rvalue)。在这个例子中,(int)a 是一个强制类型转换的结果,是一个右值,不能被赋值。正确的写法应该是将 a 定义为 int 类型,然后再进行赋值。
正确的写法:
int a;
a = 80000;