【问题标题】:Overload istream >> without return重载 istream >> 不返回
【发布时间】:2016-02-04 09:49:25
【问题描述】:

我是一名学生,对 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 对象,我只需要它来初始化我的对象。退货的原因是什么?

【问题讨论】:

    标签: c++ overloading istream


    【解决方案1】:

    因为流操作符可以被链接,即

    std::cin >> a >> b;
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-10
      • 2021-12-16
      • 1970-01-01
      • 2013-10-10
      • 2011-09-23
      • 2016-07-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多