我需要在这里重载插入操作符吗?

时间:2014-09-09 17:43:29

标签: c++

在尝试cout对象时,我是否自动要求重载插入操作符?

这是我用来练习为我的作业重载的简单客户端文件:

int main()
{
  const fraction fr[] = {fraction(1,2), fraction(3,4), fraction(5,6)};


  for (int i = 0; i < 2; i++) {
    cout << "fraction [" << i <<"] = " << fr[i] << endl;
  }

  system("pause");
}

以下是我的头文件的相关部分,它代替cout

void fraction::print() const
{
  cout << numer << " is the numerator " << denom << " is the denominator" << endl;
}

因此,当我删除cout行并将其替换为对我的print函数的调用时,它工作正常,并打印出我的数组中每个分数的每个相应参数的值。但是,如果我尝试使用cout它会吓坏并给我一个编译器错误。这是因为我需要重载插入操作符吗?

如果有人可以使用术语解释我的错误,我宁愿通过该方法学习,而不仅仅是一些随机工作的代码。我真的需要在这里学习这些材料,所以如果你们能用语言解释这笔交易是什么,那就太棒了。

1 个答案:

答案 0 :(得分:0)

是的,您需要重载&lt;&lt;运营商。这里有文档: http://en.cppreference.com/w/cpp/language/operators