从这个问题和答案 - cout << c++ << c; 的正确答案是什么?
我明白了
std::cout<<c++<<c;
被评估为:
std::operator<<(std::operator<<(std::cout, c++), c);
所以未定义的行为来自于可以首先评估两个参数中的任何一个的事实。到现在为止还挺好。
但是为什么std::operator <<
?为什么不std::ostream::operator <<
叫?如果是的话,它不会转化为
(ofstream::operator<<(c++)) << c;
|
returns ofstream&
这和方法链接有什么区别:
struct A
{
A& foo();
void goo();
};
//...
A a;
a.foo().goo();
?