2

我在 Accelerated C++ 上阅读了这篇文章。这是一个简化版本。

istream& read_hw(istream& in, Student_info& s)
{    
    in >> s.name >> s.midterm >> s.final;
    return in;
}

然后,我们可以将函数调用为:

Student_info s;
read_hw(cin, s);

我的问题是,

  1. 返回对 istream 的引用有什么意义?由于这两个参数都是通过引用传递的;
  2. 在调用函数时,我们似乎并不关心返回值
4

2 回答 2

8

你应该阅读下一段:

返回流允许我们的调用者写入

if (read_hw(cin, homework)){/*...*/} 

作为缩写

read_hw(cin, homework);
if (cin) {/*...*/}
于 2012-08-16T16:33:40.127 回答
4

返回对的引用istream启用级联。例如:

int i, j;
std::cin >> i >> j;
// Equivalent to std::cin.operator>>(i).operator>>(j);

istream::operator>>()返回istream&,以便级联>>工作。

于 2012-08-16T16:34:53.513 回答