重载<<运算符时endl是怎样的?
//给出如下定义的重载函数
ostream& operator << (ostream &cout, Person p) {
cout << "a = " << p.a << endl << "b = " << p.b << endl;
return cout;
}
//当我输出Person类型时
cout<<p<<p<<p<<endl;//这样是可行的
cout<<p;
//等价于
operator<<(cout,p);
cout<<p<<p;
//等价于
operator<<(operator(cout,p),p);
//那请问下面的代码等价于什么?
cout<<p<<endl;
//如果说是operator<<(operator(cout,p),endl);
//显然是错误的,因为endl不是Person类型