Buonasera, ho un problema con la funzione lettura da file di un vettore contenenti classi. In sostanza leggo il vettore di oggetti di tipo Lettera presente sul file di testo, dopodich� provo a stampare a video il tutto ma non mi viene mostrato nulla. La funzione � la seguente:
visualizza_dati e' la funzione membro (di tipo void) della classe base Manoscritto e della classe derivata Lettera che legge da file, inoltre nella prima l'ho definita come virtual. Vi posto anche la funzione visualizza_dati della classe Lettera che e' esattamente uguale a quella della classe padre Manoscritto con l'aggiunta della lettura da file delle variabili membro della classe derivata (mittente e destinatario). Questa l'ho testata e funziona senza problemi, la posto perchè non vorrei che funzionasse solo per caso o fortuna e quindi ci fossero problemi logici dietro che chiaramente il compilatore non rileva.codice:void Vettore::leggifile() { ifstream file; file.open("input.txt"); int i = 0; while(!file.eof()) { vet[i]->visualizza_dati(file); i++; } file.close(); }
codice:void Lettera::visualizza_dati (ifstream& file) { int buffernum; string buffertext; while(!file.eof()) { file >> buffernum; set_codice(buffernum); file >> buffertext; set_autore(buffertext.c_str()); file >> buffernum; set_numpag(buffernum); file >> buffertext; set_formato(buffertext.c_str()); file >> buffertext; set_mittente(buffertext.c_str()); file >> buffertext; set_destinatario(buffertext.c_str()); } file.close(); }