作者macrobase (马克罗贝斯小径)
看板EE_DSnP
标题[问题] non-lvalue in assignment
时间Wed Dec 24 08:50:22 2008
作业八的第二题
我写了一个很丑的code
其中有一步是这样
/*以下是重复四次取五名的过程(截取A的部份说明)*/
/*------------------A的部份------------------*/
if(num_a>5){//a
for(int i=0; i<int(INST_TOTAL); i++){
while(check!=0){
check=0;
ran=(rand()%num_a);
rst_a[i]=ran;
_students[tmp_a[ran]].getInstructor()=0;
rst_total[i+finnum]=tmp_a[ran];
for(int k=0; k<i; k++){//避免重复
if(ran==rst_a[k]) check++;
}
}
}
在_students[tmp_a[ran]].getInstructor()=0;这步,发生以下错误讯息
(tmp_a[ran]是一个int)
\hw8-2.cpp non-lvalue in assignment
我尝试把0换成A也不过,到底是怎麽回事?
恳请大家救救我
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.68.74.226
1F:推 timrau:他就已经在抗议non-lvalue了,所以检查getInstructor() 12/24 09:08
2F:→ timrau:的return type是否为一reference吧 12/24 09:08
3F:推 donch:setInstructor()才可以传值吧 12/24 09:19
4F:→ macrobase:我是看printMatch里面有一行 12/24 09:28
5F:→ macrobase:Instructor ins = _students[i].getInstructor(); 12/24 09:29
6F:→ macrobase:才想说可以这样写 12/24 09:29
7F:→ macrobase:所以是要写成这样吗? _students[i].setInstructor(0); 12/24 09:39
8F:→ macrobase:括号中间似乎要放ABCD 12/24 09:43
9F:推 stimim:可以放在等号右边不代表可以放在等号左边~ 12/24 10:35
10F:→ macrobase:有道理~!谢谢大家 12/24 10:44