我是一名学生,对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;
}
两种方式都做了同样的事情(对我来说),我不知道为什么我应该返回一个istream引用。我的意思是,我不关心istream对象,我只需要它来初始化我的对象。归还它的原因是什么?
答案 0 :(得分:14)
因为流媒体运营商可以链接,即
std::cin >> a >> b;
不返回引用,这是不可能的。