我的代码是:
double customer:: getAccounts()
{
for (int i=0;i<5;i++)
{
if(Accounts[i].getBalance() != 0)
{
double x = Accounts[i].getBalance();
return x;
}
}
}
目前您可以看到它只返回第一个帐户余额,然后在该返回点结束。但是,我想在一种方法中返回每个帐户余额以适合该程序。这可能是一个字符串,但我不知道我会怎么做。
我试过了:
string customer:: getAccounts()
{
string output;
std::ostringstream s;
for (int i=0;i<5;i++)
{
if(Accounts[i].getBalance() != 0)
{
double x = Accounts[i].getBalance();
s << x;
output += s.str;
}
}
return output;
}
但我得到以下内容:
错误2错误C2679:二进制'+ =':找不到运算符,它采用'overloaded-function'类型的右手操作数(或者没有可接受的转换)
还有:
错误1错误C3867:'std :: basic_ostringstream&lt; _Elem,_Traits,_ Alloc&gt; :: str':函数调用缺少参数列表;使用'&amp; std :: basic_ostringstream&lt; _Elem,_Traits,_Alloc&gt; :: str'创建指向成员的指针
任何人都会对我应该做的事情发光吗? :■
答案 0 :(得分:1)
使用std::vector(std::vector<double>
)作为返回类型。
答案 1 :(得分:1)
调用该函数,而不仅仅是引用它。
更改
output += s.str;
到
output += s.str();
当然,更好的解决方案是使用vector<double>
类型,以便您可以轻松地迭代值。实际上,字符串值之间甚至没有分隔符,因此您无法分辨一个值的结束位置和另一个值的开始。
答案 2 :(得分:0)
我认为你的方法有点奇怪,但这是如何正确地做到的。
string customer::getAccounts()
{
std::ostringstream s;
for (int i=0;i<5;i++)
{
if(Accounts[i].getBalance() != 0)
{
double x = Accounts[i].getBalance();
s << x;
}
}
return s.str();
}