[問題] 有關&在return type那邊時
遇到的問題:只是觀念不了解,課本翻不到QAQ
希望得到的正確結果:目前結果是正確的
程式跑出來的錯誤結果:沒錯誤
開發平台:VC++ 2008 Express
有問題的code:
ostream& operator << (ostream & output,polynomial& p)
{
bool empty=0;//測試資料是否為空
if(p.n==1 && p[0].coef==0)//當只有1項(常數項)且係數為0時
{
empty=1;
}
for(int i=p.n-1;i>=0;i--)
{
if(p[i].coef != 0 || empty)//係數不為0或者多項式為0時
cout<<p[i].coef<<" "<<p[i].exp<<endl;
}
p.destroy();
return output;
}
node& polynomial::operator [](int index)
{
node* temp=&first;//temp為暫存,指向常數項的位置
for(int i=0;i<index;i++)//index為0則回傳常數項,否則回傳下index項
{
temp=temp->link;
}
return *temp;
}
補充說明:
上面的code只是我最近寫程式時剛好寫到的
只是寫完後對於&擺在return type那邊的觀念一直很模糊
我想大家應該也會覺得不知道在寫什麼還寫下去是件很不好的事吧@@
node和polynomial是我宣告的type(其實function內容不是重點啊@@)
我是感覺&擺在return type好像是回傳某個物件的位置,又好像是回傳那物件
究竟電腦實際上在處理這東西時是怎麼處理的啊???
這問題的答案應該也可以解決為什麼這兩個operator overloading的return type一定要有
&吧???
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.50.53
※ 編輯: stupid2 來自: 220.132.50.53 (11/07 13:46)
→
11/07 14:18, , 1F
11/07 14:18, 1F
→
11/07 14:20, , 2F
11/07 14:20, 2F
→
11/07 14:20, , 3F
11/07 14:20, 3F
→
11/07 14:29, , 4F
11/07 14:29, 4F
→
11/07 14:30, , 5F
11/07 14:30, 5F
→
11/07 14:37, , 6F
11/07 14:37, 6F
→
11/07 14:37, , 7F
11/07 14:37, 7F
→
11/07 14:38, , 8F
11/07 14:38, 8F
→
11/07 14:38, , 9F
11/07 14:38, 9F
→
11/07 14:40, , 10F
11/07 14:40, 10F
→
11/07 14:41, , 11F
11/07 14:41, 11F
→
11/07 14:41, , 12F
11/07 14:41, 12F
→
11/07 14:44, , 13F
11/07 14:44, 13F
→
11/07 14:45, , 14F
11/07 14:45, 14F
→
11/07 14:47, , 15F
11/07 14:47, 15F
→
11/07 14:47, , 16F
11/07 14:47, 16F
→
11/07 14:48, , 17F
11/07 14:48, 17F
→
11/07 14:49, , 18F
11/07 14:49, 18F
→
11/07 14:50, , 19F
11/07 14:50, 19F
→
11/07 14:50, , 20F
11/07 14:50, 20F
→
11/07 14:51, , 21F
11/07 14:51, 21F
推
04/30 22:06, , 22F
04/30 22:06, 22F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章