【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;
}

相关文章
|
10天前
|
存储 编译器 C++
3.C++类和对象(中)
3.C++类和对象(中)
|
8天前
|
编译器 C++
C++进阶之路:何为运算符重载、赋值运算符重载与前后置++重载(类与对象_中篇)
C++进阶之路:何为运算符重载、赋值运算符重载与前后置++重载(类与对象_中篇)
23 1
|
8天前
|
存储 编译器 C++
C++进阶之路:何为拷贝构造函数,深入理解浅拷贝与深拷贝(类与对象_中篇)
C++进阶之路:何为拷贝构造函数,深入理解浅拷贝与深拷贝(类与对象_中篇)
15 0
|
10天前
|
存储 编译器 C语言
【C++语言2】类和对象(上)
【C++语言2】类和对象(上)
|
17天前
|
C++
c++类&对象
c++类&对象
27 3
|
21天前
|
C++
C++中的对象
C++中的对象
27 2
|
22天前
|
C++
c++ sting类型比较大小(文本数值大小比较)
c++ sting类型比较大小(文本数值大小比较)
|
2天前
|
C++
c++语言核心技术要点,《运行时类型识别RTTI》
c++语言核心技术要点,《运行时类型识别RTTI》
11 2
|
7天前
|
C++
【C++系列】指针对象和对象指针的区别
这段内容介绍了C++中`ListNode`对象和指针的两种使用方式以及它们的区别。首先,`ListNode dummy(0); ListNode* cur = &dummy;创建了一个`ListNode`对象`dummy`在栈上,`cur`是`dummy`的地址。而`ListNode* dummy = new ListNode(0); ListNode* cur = dummy;`则在堆上分配了一个`ListNode`,`dummy`和`cur`都是指向该对象的指针。使用`&dummy`作为虚拟头节点简化链表操作,避免特殊处理。栈分配内存自动管理但生命周期受限,堆分配内存需手动释放且速度较慢。
|
8天前
|
C++
C++初阶学习第五弹——类与对象(下)——类与对象的收官战
C++初阶学习第五弹——类与对象(下)——类与对象的收官战