Salve, devo creare due funzioni di una classe che memorizzino e leggano dati su/da file di testo.
Questi sono i prototipi:
codice:
virtual void memorizza_dati(ofstream &); 
virtual void visualizza_dati(ifstream &);
e queste le implementazioni:

codice:
void Manoscritto::memorizza_dati(ofstream & OutFile){
 char buffer[20];
 cout << "Inserire il nome del file in cui memorizzare dati: ";
 cin >> buffer; OutFile(buffer,ios::out | ios::app);
 OutFile << Codice << " " << Autore << " " << numpag << " " << Formato << endl;
 OutFile.close();
 }

 void Manoscritto::visualizza_dati(ifstream & InFile){
char buffer[20]; 
cout << "Inserire il nome del file in cui memorizzare dati: "; 
cin >> buffer; 
InFile(buffer,ios::in); 
InFile >> Codice >> Autore >> numpag >> Formato; InFile.close(); 
}
Solo che mi da questi errori:
no match for call to `(std::basic_ofstream<char, std::char_traits<char> >) (char[20], std::_Ios_Openmode)'

no match for call to `(std::basic_ifstream<char, std::char_traits<char> >) (char[20], const std::_Ios_Openmode&)'

Che ho visto dipendono dal fatto che i parametri di stream sono passati dall'esterno (infatti dichiarandoli all'interno della funzione, va tutto liscio). Come posso correggere il codice per far passare i parametri di stream dall'esterno?
Grazie in anticipo per l'aiuto.