[請益] 關於C++中的"+"的問題

看板Programming作者 (無法如願)時間17年前 (2008/12/27 21:19), 編輯推噓2(207)
留言9則, 4人參與, 最新討論串1/1
可能對大大來說這問題太過簡單,不過還請不吝賜教 小弟最近在學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

12/27 21:28, , 1F
String &String::operator+ 把 & 去掉?
12/27 21:28, 1F

12/27 21:35, , 2F
yes operator+不該傳回reference
12/27 21:35, 2F

12/27 21:42, , 3F
居然這麼簡單就解決了Orz...真是厲害
12/27 21:42, 3F

12/27 21:43, , 4F
所以 operator+算完以後,回傳的值會直接被
12/27 21:43, 4F

12/27 21:43, , 5F
=運算子接到並且運算0.0...
12/27 21:43, 5F

12/27 21:44, , 6F
之前完全想錯方向, 感謝~
12/27 21:44, 6F

12/27 21:46, , 7F
不建議作成 member function, 而且不能回傳
12/27 21:46, 7F

12/27 21:47, , 8F
local variable 的 reference 是基本概念
12/27 21:47, 8F

12/27 21:47, , 9F
我記得 g++ 會有 warning
12/27 21:47, 9F
文章代碼(AID): #19LYjOhD (Programming)