why does
void operator<<(ostream out, Test &t);
return an error wherea开发者_Go百科s
void operator<<(ostream &out, Test &t);
does not ?
Because you cannot copy streams, you have to pass them per reference.
Note that the canonical form of operator<<
is this:
std::ostream& operator<<(std::ostream& out, const Test &t)
{
// write t into out
return out;
}
returning the stream is important so that you can string output together:
std::cout << Test() << '\n';
精彩评论