cpp中的输出运算符

来源:互联网 发布:知无知 谌洪果简历 编辑:程序博客网 时间:2024/06/06 03:28

cpp重载了移位运算,使它成为系统类的一个运算符。而cpp中运算符在我的理解里就是函数,所以>> 和 << 都成了系统类cout,和 cin 的成员函数。
所以:

cout<<var 

就等价于:

cout.operator<<(var)

我们看到cin对象是istream类型的,cout 是ostream类型。而istream和ostream分别是:

typedef basic_istream<char, char_traits<char> > istream;typedef basic_ostream<char, char_traits<char> > ostream;

我们再往下翻,就能找到在basic_istream 和 basic_ostream 中对>>和<< 的重载。

所以:

 cout<<boolalpha<<a<<endl;

应该可以理解为:

cout<<(boolalpha<<(a<<(endl)))

当然这只是一中理解而已。

boolalpha是一个函数,入参和返回值都是ios_base的引用。
但是boolalpha的入参数是哪个?

0 0
原创粉丝点击