Cerca nel sito:
ricerca
avanzata

Frasi Celebri...

Dovremo essere in grado di selezionare le illusioni, che si richiedono al nostro temperamento e lo abbracciano con passione, se vogliamo essere felici.

Cyril Vernon Connolly 

Sondaggio:

Qual'? la canzone pi? bella di Battisti?

Amarsi un po'
I giardini di marzo
Emozioni
Pensieri e parole
Fiori rosa fiori di pesco
Acqua azzurra, acqua chiara
Mi ritorni in mente
Non ? Francesca
Ancora tu
Un'avventura
Si viaggiare
Altro

visualizza risultati


 

Costruttori per classi derivate

 

La realizzazione di un costruttore per classi derivate non e` diversa dal solito:


  Student::Student() {
    /* ... */
  }


Si deve pero` considerare che non si puo` accedere ai campi privati della classe base, e non e` neanche possibile scrivere codice simile:


  Student::Student() {
    Person(/* ... */);
    /* ... */
  }


perche` quando si giunge all'interno del corpo del costruttore, l'oggetto e` gia` stato costruito; ne esiste la possibilita` di eseguire un assegnamento ad un attributo di tipo classe base. Come inizializzare dunque i membri ereditati? Nuovamente la soluzione consiste nell'utilizzare la lista di inizializzazione:


  Student::Student() : Person(/* ... */) {
    /* ... */
  }


Nel modo appena visto si chiede al compilatore di costruire e inizializzare i membri ereditati utilizzando un certo costruttore della classe base con i parametri attuali da noi indicati. Se nessun costruttore per la classe base viene menzionato il compilatore richiama il costruttore di default, generando un errore se la classe base non ne possiede uno.
Se il programmatore non specifica alcun costruttore per la classe derivata, il compilatore ne fornisce uno di default che richiama quello di default della classe base. Considerazioni analoghe valgono per il costruttore di copia fornito dal compilatore (richiama quello della classe base).

 

 

successivo
–«  INDICE  »–

 

 

 

 
Powered by paper&pencil (carta&matita ) - Copyright © 2001-2019 Cataldo Sasso