重载<<<类中的运算符

时间:2014-04-20 15:44:07

标签: c++ class overloading iostream

我通常将我的课程保存在2个文件中:class.h和class.cpp

我想做一些像cout<< MyClass的;

我找到了一些例子:

friend ostream& operator<<(ostream &os, XXLint)
{ // do stuff
}

但是上述函数在声明后立即被解释。

我应该如何在myclass.h中声明它以便能够在myclass.cpp中使用它?而且整个函数的头文件在.cpp文件中会是什么(例如:myclass :: myclass())。

1 个答案:

答案 0 :(得分:4)

标题中的类定义:

struct Foo
{
  int a, b;
  friend std::ostream& operator<<(std::ostream &os, const Foo&);
};

在实施中(例如.cpp文件):

std::ostream& operator<<(std::ostream &os, const Foo& f)
{
  return os << f.a << " " << f.b;
}