重载 istream >> 没有 return

Overload istream >> without return

我是一名学生,对 c++ 还很陌生。我创建了一个 Class 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;
}

两种方式都做了同样的事情(对我来说),我不知道为什么我应该 return 一个 istream 参考。我的意思是,我不关心 istream 对象,我只需要它来初始化我的对象。 return 这样做的原因是什么?

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

std::cin >> a >> b;

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