Ciao a tutti. Oggi ho fatto una simulazione di un esame C++ in cui dovevo creare un programma per la gestione delle iscrizioni agli esami di un corso di laurea ecc...
Alla fine del testo c'era scritto di usare la ridefinizione degli operatori << e >> quando lo si riteneva utile.
Le classi da creare erano 3 esclusa la main, e cioè: Esame, Studente e CorsoLaurea.
Io gli operatori li ho ridefiniti per stampare e modificare i campi degli oggetti Studente e Esame, poichè CorsoLaurea richiama i metodi della classe Esame per iscrizioni, cancellazioni, stampare elenchi ecc... quindi non aveva bisogno di ridefinirli.
A questo punto mi sono ritrovato nella classe CorsoLaurea a dover definire i metodi aggiungiStudente e aggiungiEsame rispettivamente agli array dinamici di oggetti Studente e Esame. In entrambi i casi per evitare di riscrivere tutti i cout<<"Inserisci Nome, Cognome ecc.. e i cin>> per ridefinire i campi per creare i nuovi oggetti, ho deciso do usare la ridefinizione degli operatori << e >> scrivendo questo codice:
codice:
void CorsoLaurea::aggiungiEsame(Esame* e){
cin>>e; //mi riferisco a questo
for(int i=0;i<50;++i)
if(esami[i]==0){
esami[i]=e;
break;
}
dove l'operatore >> è stato ridefinito nella classe Esame come:
codice:
istream& operator>>(istream& en, Esame& e){
cout<<"Inserisci il nome della materia:"; en>>e.materia; cout<<endl;
cout<<"Inserisci il nome del docente:"; en>>e.docente; cout<<endl;
cout<<"Inserisci la data dell'esame:"; en>>e.data; cout<<endl;
return en;
}
Ma mi da errore. Come potrei usare la ridefinizione in un caso del genere per evitare di riscrivere tutti i cout e i cin?