User Tools

Site Tools


appunti3s:ereditarieta

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

appunti3s:ereditarieta [2018/04/25 07:55]
appunti3s:ereditarieta [2020/06/08 22:19] (current)
Line 1: Line 1:
 +====== L'ereditarietà ======
 +Vedere le relazioni sulla progettazione concettuale: la [[appunti3s:generalizzazione]]
 +
 +È necessario usare l'ereditarietà quando le due classi devono:
 +  * avere gli stessi membri dato 
 +  * avere le stesse funzioni membro
 +  * un oggetto di tipo classe Derivata deve essere (allo stesso tempo) anche del tipo Base
 +    * cioè i puntatori (o reference) che uso per oggetti della Base possono puntare anche oggetti della Derivata
 +
 +{{:appunti3s:ereditarieta1.png?|}}
 +
 +====Definizioni delle classi====
 +La classe //Base// è contenuta nella classe //Derivata//, per questo motivo la classe Base deve essere già stata //definita//.
 +
 +<code>
 +Class Base // Corretto
 +{
 +  //etc.
 +};
 +
 +class Derivata : public Base
 +{
 +  //etc.
 +};
 +</code>
 +
 +<code>
 +Class Base; //ERRORE manca la definizione di Base
 +
 +class Derivata : public Base
 +{
 +  //etc.
 +};
 +</code>
 +  * La classe //Derivata// avrà come membri //private// gli stessi membri //private// della //Base//
 +  * La classe //Derivata// avrà come membri //public// sia i membri //public// che quelli //protected// della //Base//
 +
 +
 +vedere [[appunti3s:polimorfismo]] ...