为什么
void operator<<(ostream out, Test &t);
返回错误而
void operator<<(ostream &out, Test &t);
不是吗?
答案 0 :(得分:10)
因为您无法复制流,所以必须按引用传递它们。
请注意operator<<
的规范形式是:
std::ostream& operator<<(std::ostream& out, const Test &t)
{
// write t into out
return out;
}
返回流很重要,这样你就可以将输出串起来了:
std::cout << Test() << '\n';