我看到了这个问题的许多不同答案,并看过其中的许多答案,但我找不到问题的答案。我有这个错误
赋值的左操作数所需的左值
我正在使用冒泡排序函数对对象数组中的双值进行排序
void BubbleSort(Student* student=new Student[5])
{
double temp;
for(int i2=0; i2<=4; i2++) {
for(int j=0; j<4; j++) {
if(student[j].getBal() > student[j+1].getBal()) {
temp = student[j].getBal();
student[j] = student[j+1];
student[j+1].getBal() = temp;
}
}
}
}
在我班
double getBal()
{
return this->bal;
}
void setBal(double bal)
{
this->bal=bal;
}
对于像student[j+1].getBal()=temp;
这样的语句,getBal()
必须返回对该类成员变量的引用。然后,您的语句将通过引用修改该成员变量的值。
但不要这样做:更正常的做法是提供一个以double
为参数的setBal()
方法。
student[j+1].getBal()=temp;
函数调用为"Rvalue"。这意味着你不能分配它们。你正在做的事情有点像试图写1 = temp
。