shr*_*sva 0 c++ operator-overloading
为什么会
void operator<<(ostream out, Test &t);
返回错误而
void operator<<(ostream &out, Test &t);
不是?
sbi*_*sbi 10
因为您无法复制流,所以必须按引用传递它们.
请注意,规范形式operator<<是这样的:
std::ostream& operator<<(std::ostream& out, const Test &t)
{
// write t into out
return out;
}
Run Code Online (Sandbox Code Playgroud)
返回流很重要,这样你就可以将输出串起来:
std::cout << Test() << '\n';
Run Code Online (Sandbox Code Playgroud)