É possível passar cout ou fout para uma função?

Eu estou tentando encontrar uma maneira de passar fout ou cout para uma função. Eu percebo que existem maneiras logicamente fáceis de lidar com isso, como colocar ifs em qualquer função que produza dados ou até mesmo apenas escrever a função nos dois sentidos. No entanto, isso parece primitivo e ineficiente. Eu não acredito que esse código funcionaria, estou colocando aqui para garantir que seja fácil ver o que eu gostaria de fazer. Por favor, esteja ciente de que estou tomando uma classe de design de algoritmo usando c ++, eu não sou de forma alguma um programador c ++ experiente. Minha turma está limitada a usar os cabeçalhos que você vê.

<code>#include <iostream>
#include <iomanip>
#include <fstream>

using namespace std;
void helloWorld(char);
ofstream fout;

int main()
{
    fout.open("coutfout.dat");
    helloWorld(c);
    helloWorld(f);

    return 0;
}
void helloWorld(char x)
{
    xout << "Hello World";
    return;
}
</code>

questionAnswers(2)

yourAnswerToTheQuestion