所以这是经典的cout重载好友成员函数。我在这里有一个简单的问题。为什么必须将其返回给引用(ostream&)?为什么不能只返回ostream?

class Time {
private:
   int hours;
   int minutes;
public: friend ostream& operator<<(std::ostream &os, const Time& t) { os<<t.hours<< "hours, " <<t.minutes<< "minutes;
return os; //why it can't return to just ostream(witout reference &)
}

最佳答案

ostream对象不可复制。由于它们代表“现实世界”资源(控制台和文件等),因此复制它们没有任何意义。

因此,由于它们不可复制,因此必须通过引用传递它们,因此operator<<的正确返回类型是引用ostream&

关于c++ - <<重载运算符,为什么它不能仅返回类类型(无引用),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61402558/

10-11 22:40
查看更多