【C++】istream类型对象转换为逻辑条件判断值

简介: 【C++】istream类型对象转换为逻辑条件判断值

前言

大家好吖,欢迎来到 YY 滴 系列 ,热烈欢迎! 本章主要内容面向接触过C++的老铁

主要内容含:


目录

istream& operator>> (int& val);

explicit operator bool() const;

  • PS:这里的explicit反而和常规用法不一样,反而是扩大了重载的权限(了解杰克)

我们观察下面代码:

实际上我们看到使用while(cin>>i)去流中提取对象数据时,调用的是operator>>,返回值是istream类型的对象,那么这里可以做逻辑条件值,源自于istream的对象又调用了operator bool,operator bool调用时如果接收流失败,或者有结束标志,则返回false。

int main()
{
  int a, b;
  while (cin>>a>>b)  // cin.operator>>(a).operator>>(b).operator bool()
  {
    cout << a << endl;
    cout << b << endl;
  }

  return 0;
}

相关文章
|
15天前
|
C++
C++(十一)对象数组
本文介绍了C++中对象数组的使用方法及其注意事项。通过示例展示了如何定义和初始化对象数组,并解释了栈对象数组与堆对象数组在初始化时的区别。重点强调了构造器设计时应考虑无参构造器的重要性,以及在需要进一步初始化的情况下采用二段式初始化策略的应用场景。
|
15天前
|
存储 编译器 C++
C ++初阶:类和对象(中)
C ++初阶:类和对象(中)
|
1月前
|
存储 安全 编译器
【C++】类和对象(下)
【C++】类和对象(下)
【C++】类和对象(下)
|
1月前
|
编译器 C++
virtual类的使用方法问题之在C++中获取对象的vptr(虚拟表指针)如何解决
virtual类的使用方法问题之在C++中获取对象的vptr(虚拟表指针)如何解决
|
1月前
|
C++
C++ --> 类和对象(三)
C++ --> 类和对象(三)
33 9
|
1月前
|
编译器 C++
【C++】类和对象(中)
【C++】类和对象(中)
|
1月前
|
存储 编译器 程序员
【C++】类和对象(上)
【C++】类和对象(上)
|
1月前
|
编译器 C++ 开发者
C++ --> 类和对象(二)
C++ --> 类和对象(二)
30 7
|
15天前
|
安全 程序员 C语言
C++(四)类型强转
本文详细介绍了C++中的四种类型强制转换:`static_cast`、`reinterpret_cast`、`const_cast`和`dynamic_cast`。每种转换都有其特定用途和适用场景,如`static_cast`用于相关类型间的显式转换,`reinterpret_cast`用于低层内存布局操作,`const_cast`用于添加或移除`const`限定符,而`dynamic_cast`则用于运行时的类型检查和转换。通过具体示例展示了如何正确使用这四种转换操作符,帮助开发者更好地理解和掌握C++中的类型转换机制。
|
1月前
|
存储 编译器 C++
【C++】类和对象(下)
【C++】类和对象(下)