0
我有我的老師告訴我們在.h文件中使用這個方法的任務:重載字符串()操作
operator string();
以任何方式,我們不能偏離它。
所以在我的.cpp文件我有:
Currency::operator string(){
stringstream output;
output<<"$";
output<<dollars;//Why does this return garbage for money1+money2??
output<<".";
output<<cents;
string outputstring = output.str();
return outputstring;
}
但是當我做string(money1+money2)
返回垃圾,它工作正常時,我只是做「字符串(MONEY1)`。我想知道我做錯了什麼。
任何幫助將是偉大的。
這裏是我的重載+操作員代碼:
Currency& Currency::operator+(const Currency &rhs){
Currency temp;
temp.dollars = dollars + rhs.dollars;
temp.cents = cents + rhs.cents;
temp.simplify();
return temp;
}
注:我已運行調試,並有一個與重載+操作沒有問題;它返回它應該的。
你的錯誤可能在於你的'運營商+',而不是在'運營商string'。 –
您的問題可能出現在您*未顯示給我們的代碼中。請在這裏創建一個最小的**完整的**示例程序並複製粘貼。在這個過程中,你可能會發現自己的錯誤。請參閱http://sscce.org獲取更多信息。 –
僅僅因爲'operator +'*出現*返回期望值並不意味着它*正確*。尤其是使用C++。 –