lvalue required as left operand of assignment p2.getHealth() = p2.getHealth() - 1;
时间: 2024-05-28 08:12:34 浏览: 81
这个错误通常出现在你试图将一个非左值表达式赋值给一个变量或对象时。在这种情况下,你试图将一个函数调用的返回值赋给一个变量,而函数返回值并不是左值,不能作为赋值运算符的左操作数。
为了解决这个问题,你需要检查你的代码,并确保将赋值运算符应用于一个左值。如果你想在函数内部修改某个对象或变量的值,你需要将其作为函数参数传递,并在函数内部修改该参数的值,而不是将函数调用的返回值用作左值。
相关问题
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
这个错误通常出现在你试图把一个非可修改的值赋值给一个变量时。在C++中,你只能给一个左值(可修改的值)赋值。
例如,以下代码将产生这个错误:
```
5 = x;
```
这是因为 5 是一个常量,是不可修改的,不能被赋值。正确的做法应该是将 x 的值赋给 5:
```
x = 5;
```
如果你需要修改一个值,它必须是一个变量,而不是一个常量或表达式的结果。
阅读全文