Home
Accesso / Registrazione
 di 

Programmazione orientata agli oggetti in ANSI-C. Ereditarietà multipla

Programmazione orientata agli oggetti in ANSI-C. Ereditarietà multipla

Poichè stiamo pensando di usare l'ANSI-C non possiamo nascondere il fatto che ereditarietà significa includere una struttura all'inizio di un'altra. L'up-casting è la chiave per riutilizzare un metodo della superclasse sugli oggetti della sottoclasse.

Effettuare l'up-cast da un cerchio a un punto significa effettuare il casting dell'indirizzo all'inizio della struttura; il valore dell'indirizzo non cambia.

Se includiamo due o più strutture in qualche altra struttura, e se vogliamo effettuare qualche manipolazione degli indirizzi durante lìup-casting, chiameremo il risultato ereditarietà multipla: un oggetto può comportarsi come se appartenesse a più classi. L'ereditarietà multipla però, anche se appare comoda, impone che in fase di progetto si presti particolare attenzione a cosa si sta modellando. Attenzione, inoltre, deve essere posta quando si devono effettuare operazioni di manipolazione degli indirizzi prima di riutilizzare i metodi delle superlcassi.

Le cose possono complicarsi notevolmente in modo molto rapido. Consideriamo un testo e un rettangolo, ognuno con un punto di riferimento ereditato. Possiamo mixarli assieme per creare un pulsante – la domanda sarà se il pulsante dovrà ereditare un solo punto di riferimento oppure due punti di riferimento.

Il nostro approccio di fare tutto in ANSI-C ha un vantaggio significativo: non viene oscurata – a differenza del C++ - che l'eredità multipla o no avviene sempre per inclusione. L'inclusione, comunque, può avvenire anche per aggregazione. Non è chiaro per nulla se l'ereditarietà multipla sia davvero così utile al programmatore da giustificare un maggior grado di complessità nell'implementazione del codice.

Noi preferiamo mantenere le cose e i concetti semplici e continueremo a parlare di eredità semplice. Il Capitolo 14 mostrerà come uno dei principali usi dell'ereditarietà multipla – il merge delle librerie – può comunque essere realizzato con aggregazioni e messaggi.

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 9 utenti e 45 visitatori collegati.

Ultimi Commenti