我理解在下面的代码调用序列困难。 我原以为会看到下面的输出
A1B2
虽然我可以看到输出我得到的是
BA12
我认为通话std::cout<< b->fooA() << b->fooB() << std::endl
相当于调用
std::cout.operator<<( b->fooA() ).operator<< ( b->fooB() )
但我可以看到,这是情况并非如此。 你能帮助我更好地理解如何它的工作原理,并与全球的关系operator<<
? 难道这最后一场在这个序列叫什么?
问候
AFAG
#include <iostream>
struct cbase{
int fooA(){
std::cout<<"A";
return 1;
}
int fooB(){
std::cout <<"B";
return 2;
}
};
void printcbase(cbase* b ){
std::cout << b->fooA() << b->fooB() << std::endl;
}
int main(){
cbase b;
printcbase( &b );
}