Nie rozumiem pewnego zachowania a mianowicie mam jakąś klasę a w niej metodę
void out( std::ostream & out = std::cout );
I teraz pytanie dlaczego mogę ten kod wywołać tak
base.out( std::cout );
a nie mogę wywołać tak
base.out( std::ofstream( "log.txt" ) );
bo dostaje ( co jest dla mnie oczywiste ) błąd
no matching function for call to 'base::out(std::ofstream)'
pytanie dlaczego w wersji z obiektem std::cout się nie czepia?
Wiem że mogę to zrobić tak
std::ofstream file( "log.txt" );
base.out( file );
Pytam bo jest to dla mnie dziwne i chciałbym aby mi to ktoś wyjaśnił.