Resúmenes
Apuntes universitarios en formato Markdown desde Obsidian.
Polimorfismo
download Descargar MDIl polimorfismo permette di trattare oggetti di classi diverse (ma imparentate) in modo uniforme, invocando il metodo corretto a tempo di esecuzione.
Override e Funzioni Virtuali
Per abilitare il polimorfismo, la classe base deve dichiarare i metodi come virtual.
class Persona {
public:
virtual void stampa() const; // Metodo virtuale
};
Se Studente ridefinisce stampa(), allora:
Persona* p = new Studente();
p->stampa(); // Chiama Studente::stampa() grazie al polimorfismo
Classi Astratte
Una classe è astratta se contiene almeno un metodo virtuale puro (= 0).
virtual unsigned int area() = 0;
Non si possono istanziare oggetti di classi astratte (FiguraGeometrica). Le classi derivate (Quadrato, Rettangolo) devono implementare i metodi puri per poter essere istanziate.
Importante: Il distruttore di una classe base polimorfica deve essere sempre
virtualper garantire la corretta deallocazione della memoria .