Funzioni
virtuali
Le funzioni virtuali sono funzioni associate
al tipo attuale di oggetto disponibile permettendo la
chiamata in tempo di esecuzione e costituiscono il meccanismo
utilizzato dal C++ per ottenere il polimorfismo.
Per dichiarare una funzione come virtuale si mette la parola
chiave virtual prima del nome nella dichiarazione
della classe base (o anche di ogni figlia, ma non è
necessario):
virtual
type Nome_Funzione ( elenco parametri
);
Un esempio di codice :
#include <iostream>
using namespace std;
class Padre
{
public:
virtual void Stampa();
{
cout<<"Io sono il Padre"<<endl;
};
};
class Figlio:public Padre
{
void Stampa();
{
cout<<"Io sono il Figlio"<<endl;
};
};
int main()
{
Padre*p; // dichiarazione di un puntatore di tipo padre
p=newPadre; //associa il puntatore ad un area di memoria di tipo padre
p->Stampa();
(*p)Stampa();
//sara utilizzato quello della classe padre
p=new Figlio; //
p->Stampa();
return 0;
}
// end of main
using namespace std;
class Padre
{
public:
virtual void Stampa();
{
cout<<"Io sono il Padre"<<endl;
};
};
class Figlio:public Padre
{
void Stampa();
{
cout<<"Io sono il Figlio"<<endl;
};
};
int main()
{
Padre*p; // dichiarazione di un puntatore di tipo padre
p=newPadre; //associa il puntatore ad un area di memoria di tipo padre
p->Stampa();
(*p)Stampa();
//sara utilizzato quello della classe padre
p=new Figlio; //
p->Stampa();
return 0;
}
// end of main
Nessun commento:
Posta un commento