以下 if 语句中的条件有什么作用
what does the condition in the following if statement do?
if (read(read(cin, data1), data2))
问题是C++入门第5版的练习。函数read
定义如下:
std::istream &read(std::istream &is, Sales_data &item)
{
double price = 0;
is >> item.bookNo >> item.units_sold >> price;
item.revenue = price * item.units_sold;
return is;
}
if 语句中的条件有什么作用?我无法理解这一点。
if 语句中的条件有什么作用?我无法理解 这一点。
你不应该要求练习的解决方案;这削弱了学习效果。再次浏览章节和功能,看看您是否能发现要点。
如果你把它写出来稍微不同一点,也许会有所帮助:
std::istream& a = read(cin, data1);
std::istream& b = read(a , data2);
if (b)
// ...
read
函数返回输入流,类似于常见用法:
int v1, v2;
if (std::cin >> v1 >> v2)
//...
我想在本书的这个阶段,还没有引入运算符重载,如果运算符<<
为类Sales_data
重载会更清楚。
在这种情况下
,函数 read
采用std::istream
对象引用并返回相同的类型。这样做是为了read
可以称为级联。考虑:
cin >> a >> b;
您认为a >> b
应该如何运作?只是cin.operator>>(int&)
返回cin
对象本身。因此,通过理解,read
遵循相同的方法。
相关文章:
- archive_read_support_filter_all() 有什么作用?
- 当我们为(;;) 写作时,它做了什么?for 循环中的双分号有什么作用?
- 这个递归函数有什么作用?运行时的复杂性是多少?
- DrawShadow 中的 Elevation 究竟有什么作用?
- 测试"stream >> char"有什么作用?
- "uFlags &= ~CHN_PANNING"命令有什么作用?
- GCC 的 -Wpsabi 选项究竟有什么作用?压制它意味着什么?
- int** a = new int*[n]();这个函数有什么作用?
- C++ 此函数调用之前的(void)有什么作用?
- i+=(i&-i) 有什么作用?它是便携式的吗?
- 这个size_t在 lambda 中有什么作用?C++代码
- 数组下标运算符 ([ ]) 对数组有什么作用?
- 结构之外的节点 * head 有什么作用?
- 重载括号运算符有什么作用?
- clang的"-Ofast"选项在实践中有什么作用,特别是对于与gcc的任何差异?
- std::make_unique_for_overwrite() 对 std::make_unique() 有什么作用?
- 运算符 delete[] 有什么作用?
- 下面的代码有什么作用?c++
- 这个陈述'p = I.ptr<uchar>(i);有什么作用?
- 这个嵌套的名称空间定义有什么作用