Cerca nel sito:
ricerca
avanzata

Frasi Celebri...

Un mafioso e' una persona che dice di non esistere a persone che dicono di non conoscerlo.

Andrea Peruzzi 

Sondaggio:

Secondo voi quale squadra "ladra" di più?

Juventus
Roma
Inter
Lazio
Chievo
Milan
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-2009 Cataldo Sasso