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

前言

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

欢迎订阅 YY滴C++专栏!更多干货持续更新!以下是传送门!

  • YY的《C++》专栏
  • YY的《C++11》专栏
  • YY的《Linux》专栏
  • YY的《数据结构》专栏
  • YY的《C语言基础》专栏
  • YY的《初学者易错点》专栏
  • YY的《小小知识点》专栏
  • YY的《单片机期末速过》专栏
  • YY的《C++期末速过》专栏

目录

istream& operator>> (int& val);
explicit operator bool() const;
【C++】istream类型对象转换为逻辑条件判断值_第1张图片

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

你可能感兴趣的:(YYの小小知识点,c++,开发语言)