据我所知,
istream& operator >> (istream &in, int &n);
是关于>>如何工作的声明(或以某种方式重载它)
但我对这个“函数”的返回类型“istream&”感到困惑。
如果我做类似 cin >> x;这意味着我要放入对 x 的引用,但我不理解返回类型 istream & 和参数“in”。
这个函数看起来像定义了什么?什么是“在”?它实际上返回了什么?因为 cin >> x 除了接受输入之外确实做任何事情,所以为什么它必须返回任何东西?
谢谢!
最佳答案
operator >> 的标准实现将返回对 istream &in 参数的引用,这意味着它返回完全相同的对象。
这是为了方便起见,因此您可以编写如下代码:cin >> x >> y;
编译器会将运算符左侧 的内容放入第一个 参数,将右侧 放入>第二个。
cin >> x >> y 将翻译成 operator>>( (operator>>(cin, x), y );
这将首先将 x 添加到流并使用返回值,即流本身,并将 y 写入其中。
关于c++ - 运算符和返回类型是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58575873/