cpp中的输出运算符

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的入参数是哪个?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值