作者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