gpt4 book ai didi

c++ - 重载 string() 运算符

转载 作者:太空宇宙 更新时间:2023-11-04 15:26:12 25 4
gpt4 key购买 nike

我有一个老师告诉我们在 .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) 时它返回垃圾,当我只执行 'string(money1)` 时它工作正常。我想知道我做错了什么。

任何帮助都会很棒。

这是我重载的 + 运算符代码:

Currency& Currency::operator+(const Currency &rhs){
Currency temp;
temp.dollars = dollars + rhs.dollars;
temp.cents = cents + rhs.cents;
temp.simplify();
return temp;
}

注意:我已经运行了调试器,重载的 + 运算符没有问题;它会返回它应该返回的内容。

最佳答案

Here is my overloaded + operator code:

您正在通过引用返回局部变量。 永远不要这样做。

您应该按值返回它:

Currency Currency::operator+(const Currency &rhs)

关于c++ - 重载 string() 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7775589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com