看板 Programming 關於我們 聯絡資訊
可能對大大來說這問題太過簡單,不過還請不吝賜教 小弟最近在學C++中的Overloading,於是去實做字串的.operator+ 題目為 s1 = s2 + s3 以下是我做的operator+ function const String &String::operator+( const String &right ) { . . . String tempString(tempPtr); delete [] tempPtr; return tempString; // enables cascaded calls } // end function operator+ 可是在實做出錯後發現 s1 = s2 + s3是先算+運算子再算=運算子 所以我回傳的tempString就隨著+法運算子的結束跟著function一起毀滅了 想問的是 在正常的a = b + c中 c++是如何在+運算子跟=運算子中間傳遞數值的... -- 明知道這是不可能的願望 卻如同烙印的爪痕沁入大地 假如 可以實現的話 將我的存在剝奪 捨棄也無妨 祈禱著 祈求著 幻想也好 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.115.73.162
james732:String &String::operator+ 把 & 去掉? 59.104.62.118 12/27 21:28
legendmtg:yes operator+不該傳回reference 61.217.144.162 12/27 21:35
LayerZ:居然這麼簡單就解決了Orz...真是厲害 59.115.73.162 12/27 21:42
LayerZ:所以 operator+算完以後,回傳的值會直接被 59.115.73.162 12/27 21:43
LayerZ:=運算子接到並且運算0.0... 59.115.73.162 12/27 21:43
LayerZ:之前完全想錯方向, 感謝~ 59.115.73.162 12/27 21:44
godfat:不建議作成 member function, 而且不能回傳 220.135.28.18 12/27 21:46
godfat:local variable 的 reference 是基本概念 220.135.28.18 12/27 21:47
godfat:我記得 g++ 會有 warning 220.135.28.18 12/27 21:47