终于明白c++中为什么返回的istream等对象能直接进行bool判断

本文揭示了C++中为什么istream类型的对象,如用于输入操作的getline和>>,可以被直接用于布尔判断。关键在于其基类basic_ios提供了两个特定的成员函数,使得istream对象在作为条件表达式时能够表达读取状态。
摘要由CSDN通过智能技术生成

      之前一直很困惑c++中用>>, getline等函数读进数据,如:    

        while(cin>>c) 或者 while(getline(cin, str))
 为什么能直接判读是否读到数据尾或者读取数据出错,相当于返回的是个bool类型

     因为我看函数其原型是这样的,返回的是个istream&难过

    istream& operator>> (bool& val );
    istream& operator>> (short& val );
    istream& operator>> (unsigned short& val );
    istream& operator>> (int& val );
    istream& operator>> (unsigned int& val );
    istream& operator>> (long& val );     

    istream& getline ( istream& is, string& str, char delim );
    istream& getline ( istream& is, string& str );


       原来是其父类basic

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值