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:
codice:
void Vettore::leggifile()
{
ifstream file;
file.open("input.txt");
int i = 0;
while(!file.eof())
{
vet[i]->visualizza_dati(file);
i++;
}
file.close();
}
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 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();
}