Cerca nel sito:
ricerca
avanzata

Frasi Celebri...

A scuola mi esclusero dalla squadra di scacchi a causa della mia statura.

Woody Allen 

Sondaggio:

Quale auto per non passare inosservati?

Jaguar
Mercedes
Ferrari
Maserati
Bmw
AlfaRomeo
Bugatti

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-2022 Cataldo Sasso