【发布时间】:2020-04-16 21:06:36
【问题描述】:
我正在尝试通过阅读教科书并做练习题和其他东西来自学 C++,而我目前正在学习的主题对我来说有点混乱,我希望得到一些澄清。我在网上寻找了我问题的明确答案,但还没有找到任何东西。
我目前正在学习标准库中 IO 类的详细信息,我现在的部分给出了一些具有传递和返回 IO 对象的函数的示例。
例如:
istream &get_value(istream &input)
{
int value;
input >> value;
return input;
}
int main()
{
get_value(cin);
return 0;
}
我从高层次上理解这里发生了什么。 get_value 函数具有对输入对象类型的引用,并且它还接受对输入对象的引用,在我的示例中,我曾经常用 cin 对象。我知道这个函数正在控制台中读取用户的输入,并将该输入存储为value。
我不明白返回输入对象的原因是什么。 为什么这个函数不应该有 void 类型? 我使用的输入对象可以用来做什么?我知道我现在没有用它来做任何事情,但是它可以用来做什么呢?
【问题讨论】:
-
您也可以使用
cin >> get_value;来做同样的事情,因为>>的重载采用带有签名istream&(*)(istream&)的函数指针来允许这种语法。