我学会了如何对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;没有任何用处?
答案 0 :(得分:6)
请记住如何编写这样的代码:
cout << "The data is: " << somedata << endl;
这实际上与:
相同((cout << "The data is: ") << somedata) << endl;
为此,<<
运算符必须返回流。