【发布时间】:2017-03-22 20:12:57
【问题描述】:
我正在阅读一篇关于 Overloading the Stream Insertion Operator (<<) 的文章。它强调应该返回输出流对象以确保操作符正确级联。但是好像没有return,输出还是正确的,这里有什么问题?
#include<iostream>
class Rational
{
friend std::ostream& operator<<(std::ostream&, const Rational&);
private:
int numerator;
int denominator;
public:
Rational(int num, int den): numerator{num}, denominator{den} {}
};
std::ostream& operator<<(std::ostream& lhs, const Rational& rhs)
{
lhs << rhs.numerator << "/" << rhs.denominator;
//return lhs;
}
int main()
{
Rational r1(3, 5);
std::cout << "The value of r1 is " << r1 << std::endl; // After commenting return lhs; still works fine
}
【问题讨论】:
标签: c++ c++11 return operator-overloading