作者LayerZ (无法如愿)
看板Programming
标题[请益] 关於C++中的"+"的问题
时间Sat Dec 27 21:19:16 2008
可能对大大来说这问题太过简单,不过还请不吝赐教
小弟最近在学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
1F:→ james732:String &String::operator+ 把 & 去掉? 59.104.62.118 12/27 21:28
2F:推 legendmtg:yes operator+不该传回reference 61.217.144.162 12/27 21:35
3F:→ LayerZ:居然这麽简单就解决了Orz...真是厉害 59.115.73.162 12/27 21:42
4F:→ LayerZ:所以 operator+算完以後,回传的值会直接被 59.115.73.162 12/27 21:43
5F:→ LayerZ:=运算子接到并且运算0.0... 59.115.73.162 12/27 21:43
6F:→ LayerZ:之前完全想错方向, 感谢~ 59.115.73.162 12/27 21:44
7F:推 godfat:不建议作成 member function, 而且不能回传 220.135.28.18 12/27 21:46
8F:→ godfat:local variable 的 reference 是基本概念 220.135.28.18 12/27 21:47
9F:→ godfat:我记得 g++ 会有 warning 220.135.28.18 12/27 21:47