Trovate qui tutti i programmi C++ sviluppati a lezione
Mercoledi' 18 Giugno 2003 : 16 18 3 - zito da pcba10.ba.infn.it 192.135.10.180

#include < vector>
#include < iostream.h>
#include < string>
class Dipendente {
protected:
string nome;
string qualifica;
int stipendio;
public:

Dipendente():nome("Pinco Pallino"),qualifica("segretario"),stipendio(2000){}
Dipendente(string n, string q, int s):nome(n),qualifica(q),stipendio(s){}
virtual void stampa() =0;
};
class Manager:public Dipendente{
public:
Manager(string n, int s):Dipendente(n,string("manager"),s){}
void stampa(){
cout << "Sono il manager "<< Dipendente::nome << "con qualifica " << Dipendente::qualifica << " e stipendio "<<
Dipendente::stipendio << "euro" <}
};
void interroga(Dipendente *p){p->stampa();}

int main()
{

vector< Dipendente*> v;
Manager s1("Giuseppe Rossi",2300);
v.push_back(&s1);
Manager s2("Mario Verdi",45852);
v.push_back(&s2);
Manager s3("Giuseppe Verdi",45852);
v.push_back(&s3);
for(int i = 0; i < v.size();i++){
v[i]->stampa();

}

return 0;
}
Giovedi' 19 Giugno 2003 : 9 22 - zito da 193.204.188.202
polimorfismo richiede il link dinamico

In C++ il link normalmente e' statico:
Una classe base con la definizione del metodo polimorfico
Classi derivate con l'implementazione del metodo polimorfico
- Il metodo polimorfico nella classe base deve essere dichiarato virtual
- Il distruttore della classe base deve essere anch'esso
dichiarato virtual.
- il richiamo al metodo polimorfico deve avvenire attraverso un puntatore alla classe base.