std::ostream& out 这个朋友重载运算符函数的目的是什么,而不仅仅是 std::cout?

Men*_*awy -1 c++ syntax ostream

有人可以解释std::ostream &out这个朋友重载运算符函数的目的吗?为什么不直接std::cout在函数内部使用?

friend std::ostream& operator<<(std::ostream& out, const Complex& c) 
{
    out << c.real;
    out << "+i" << c.imag << endl;

    return out;
}
Run Code Online (Sandbox Code Playgroud)

相反,像这样:

friend operator<<(const Complex& c) 
{ 
    std::cout << c.real;
    std::cout << "+i" << c.imag << endl;
}
Run Code Online (Sandbox Code Playgroud)

mit*_*ull 9

因为这样你可以使用 anyostream作为输出,而不仅仅是std::cout 例如,std::clog << c;