重载 istream >>而不返回

Overload istream >> without return

本文关键字:gt 返回 istream 重载      更新时间:2023-10-16

我是一名学生,对 c++ 很陌生。我创建了一个类 Vector2D 并重载了 istream 运算符。我通过以下两种方式做到了:

friend void operator >> (istream& is, Vector& v);
friend istream& operator >>(istream& is, Vector&v);
void operator >> (istream& is, Vector& v)
{
    is >> v.x >> v.y;
}
istream& operator >> (istream& is, Vector& v)
{
    is >> v.x >> v.y;
    return is;
}

两种方式都做了同样的事情(对我来说),我不知道为什么我应该返回 istream 引用。我的意思是,我不关心 istream 对象,我只需要它来初始化我的对象。退货的原因是什么?

因为流运算符可以链接,即

std::cin >> a >> b;

如果不返回引用,这是不可能的。