You could pass an argument of type FileLogger (probably better a pointer?)foo ( FileLogger log ) { }
I like it. Am i right understand that it prevent creation unneeded of new instance of logger?
And what problems I can get if I will create new instance of logger in every stand alone function? Just resource overusage?