在C+中返回对istream的引用+; 我在加速C++上读到了这个。这是一个简化的版本 istream& read_hw(istream& in, Student_info& s) { in >> s.name >> s.midterm >> s.final; return in; }

在C+中返回对istream的引用+; 我在加速C++上读到了这个。这是一个简化的版本 istream& read_hw(istream& in, Student_info& s) { in >> s.name >> s.midterm >> s.final; return in; },c++,reference,istream,C++,Reference,Istream,然后,我们可以将该函数调用为: Student_info s; read_hw(cin, s); 我的问题是, 返回对istream的引用有什么意义?因为这两个参数都是通过引用传递的 调用函数时,我们似乎并不关心返回值 你应该读下一段: 返回流允许调用方写入 if (read_hw(cin, homework)){/*...*/} 作为的缩写 read_hw(cin, homework); if (cin) {/*...*/} 返回对istream的引用将启用级联。例如: int i,

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

Student_info s;
read_hw(cin, s);
我的问题是,

  • 返回对istream的引用有什么意义?因为这两个参数都是通过引用传递的
  • 调用函数时,我们似乎并不关心返回值

  • 你应该读下一段:

    返回流允许调用方写入

    if (read_hw(cin, homework)){/*...*/} 
    
    作为的缩写

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

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

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

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

    如果它是operator>>,它将。。。。嗯,你仍然可以,但是语法不是很好这里有一个关于C++/IO的。这很有帮助。