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() ?