运算符重载“float”和“<<”

这个问题在这里已经有了答案:

  • 运算符重载的基本规则和习惯用法是什么? 7个答案

  • 您的输出operator<<应接受流作为第一个参数,并将分数作为第二个参数。 现在,它做了相反的事情(分数是第一个参数,流是第二个参数)。 这意味着操作员没有被调用,而是将分数转换为float ,然后显示浮点数。

    你写的操作符可以用a << cout来调用,这显然是错误的。

    您不应将其作为成员运算符,而应该将此运算符作为(朋友)非成员实现,而不在您的类中。

    样本签名:

    std::ostream& operator<<(std::ostream& os, const Fraction& f);


    作为非会员(朋友)功能,在您的班级之外实施operator <<

    请参阅运算符重载。


    operator<<不应该是类的成员,因为它需要将流对象作为其第一个参数,并具有签名ostream &operator<<(ostream &, Fraction)

    链接地址: http://www.djcxy.com/p/12717.html

    上一篇: Operator overloading "float" and "<<"

    下一篇: Operator overloading inside vs outside class