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

时间:2014-11-10 08:05:34

标签: 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;
}

return obj;有什么意义?

返回是否有进一步的使用?

由于运算符的语法&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;没有任何用处?

1 个答案:

答案 0 :(得分:6)

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

cout << "The data is: " << somedata << endl;

这实际上与:

相同
((cout << "The data is: ") << somedata) << endl;

为此,<<运算符必须返回流。