Ostream <<运算符重载和它的返回类型

InQ*_*ive 1 c++ operator-overloading

我学会了如何对Stream Insertion Operator进行运算符重载.但仍有一个疑问.

#include<iostream>

class INT
{
    int i;
    friend std::ostream& operator<<(std::ostream&,INT&);
public:
    INT():i(100){}
};

std::ostream& operator<<(std::ostream& obj,INT & data)
{
   obj<<data.i;
   return obj;
}

int main()
{
    INT obj;
    std::cout<<obj;
}
Run Code Online (Sandbox Code Playgroud)

有什么意义return obj;

回报有进一步的用处吗?

是我们不得不做的回报,因为运营商<<语法没有任何用处的?

Jon*_*oni 6

记住你如何编写这样的代码:

cout << "The data is: " << somedata << endl;
Run Code Online (Sandbox Code Playgroud)

这实际上与:

((cout << "The data is: ") << somedata) << endl;
Run Code Online (Sandbox Code Playgroud)

为此,<<操作员必须返回流.