在C ++中流重载

时间:2010-04-20 10:45:00

标签: c++ operator-overloading

为什么 void operator<<(ostream out, Test &t); 返回错误而 void operator<<(ostream &out, Test &t); 不是吗?

1 个答案:

答案 0 :(得分:10)

因为您无法复制流,所以必须按引用传递它们。

请注意operator<<的规范形式是:

std::ostream& operator<<(std::ostream& out, const Test &t)
{
   // write t into out
   return out;
}

返回流很重要,这样你就可以将输出串起来了:

std::cout << Test() << '\n';