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 [2018/04/25 07:55] (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]] ...
  
  • appunti3s/ereditarieta.txt
  • Last modified: 2018/04/25 07:55
  • (external edit)