Ciao a tutti, ho una sitauzione del genere: 2 classi: persona e professore, ognuna in relazione "has a"con la classe esame.
codice:
#include <iostream>
using namespace std;
class esame {
int voto;
public:
virtual void aggiungi_esame () = 0; //questa funzione ha corpi diversi per studente e per professore
};
class persona{
protected:
char nome[10];
public:
virtual void registrati () = 0;
};
class studente:public persona {
int matricola;
esame *E;
public:
void registrati () {cout<<"registro studente"; }
};
class professore:public persona{
char facolta[10];
esame *E;
public:
void registrati () {cout<<"registro professore"; }
};
int main (){
char professione;
persona *ptr;
cout<<"inserisci professione: ";
cin>>professione;
if (professione=='p'){
ptr = new professore;
}
else{
ptr = new studente;
}
/*
Ho 2 aggiungi esame (si chiamano uguali ma compiono operazioni diverse)
E' POSSIBILE fare un polimorfismo a run time in modo da chiamare solo una volta la aggiungi_esame
di studente o di professore a seconda del valore di ptr? (dato che in questo momento del programma saprò sempre se e' u professore o uno studente)
ad ES: ptr->aggiungi_esame() ?
*/
return 0;
}
Ho 2 aggiungi esame (si chiamano uguali ma compiono operazioni diverse).
E' POSSIBILE fare un polimorfismo a run time in modo da chiamare solo una volta la aggiungi_esame di studente o di professore a seconda del valore di ptr?
ad ES: ptr->aggiungi_esame() ?