[問題] non-lvalue in assignment

看板EE_DSnP作者 (馬克羅貝斯小徑)時間15年前 (2008/12/24 08:50), 編輯推噓3(308)
留言11則, 5人參與, 4年前最新討論串1/1
作業八的第二題 我寫了一個很醜的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

12/24 09:08, , 1F
他就已經在抗議non-lvalue了,所以檢查getInstructor()
12/24 09:08, 1F

12/24 09:08, , 2F
的return type是否為一reference吧
12/24 09:08, 2F

12/24 09:19, , 3F
setInstructor()才可以傳值吧
12/24 09:19, 3F

12/24 09:28, , 4F
我是看printMatch裡面有一行
12/24 09:28, 4F

12/24 09:29, , 5F
Instructor ins = _students[i].getInstructor();
12/24 09:29, 5F

12/24 09:29, , 6F
才想說可以這樣寫
12/24 09:29, 6F

12/24 09:39, , 7F
所以是要寫成這樣嗎? _students[i].setInstructor(0);
12/24 09:39, 7F

12/24 09:43, , 8F
括號中間似乎要放ABCD
12/24 09:43, 8F

12/24 10:35, , 9F
可以放在等號右邊不代表可以放在等號左邊~
12/24 10:35, 9F

12/24 10:44, , 10F
有道理~!謝謝大家
12/24 10:44, 10F

07/12 00:09, 4年前 , 11F
所以是要寫成這樣嗎? https://noxiv.com
07/12 00:09, 11F
文章代碼(AID): #19KOTFjc (EE_DSnP)