有关类和函数的麻烦更多信息

时间:2016-11-07 14:51:47

标签: c++

我很抱歉,但我甚至不确定这会被称为搜索问题和答案。

我有一个类函数

cout  << "Fraction x, y(2), z(-5,-6), w(1,-3);" << endl;
Fraction x, y(2), z(-5,-6), w(1,-3);
//Initializing the Fraction class with X at default values
//Y with 2 as Numerator and default value, Z and W with their values.
cout   << "z = " << z << ", y = " << y << ",  z = " << z
<< ", w = " << w << endl;

我的问题是如何使 “cout&lt;&lt;”z =“&lt;&lt; z&lt;&lt; endl; 打印出分数对于z。我是如何做到这一点的,我可以做 z.output(); ,它会完美地打印出来的功能,但如果我只想把z放入会得到一个错误,因为程序和我都不知道如何使这个工作。我希望这是一个非常简单的修复。我试图分配 z = z.output() 但由于不同的值类型,这不起作用。所以我将它们都更改为Fraction类型,但它仍然无法正常工作。

我必须按原样使用该顶级程序(main),不能修改它。我只能修改自己的功能

谢谢

1 个答案:

答案 0 :(得分:3)

你可以这样做(这是一个全局函数;不是任何特定类中的方法):

std::ostream& operator<<(std::ostream& os, const Fraction& f)  
{  
    os << f.output();
    return os;  
}  

我假设output()具有合适的返回类型。如果没有,那么您可以随时在上述函数中插入替代代码。

这是惯用法:请注意,您返回对传递的流的引用,以启用<<链接