4° Anno TEORIA 6. Programmazione ad oggetti: il linguaggio C++ | Page 138

Supponiamo di avere due oggetti , x un Frutto ed y una Mela appartenenti a questa gerarchia di classi utilizzata più volte nelle nostre slide .
Supponiamo di avere effettuato le due dichiarazioni seguenti : Frutto x ; Mela y ;
Cosa possiamo dire delle assegnazioni 1 ) x = y ; // OK CASTING implicito 2 ) y = x ; // NOT OK : PROBLEMI !!
Un oggetto di una classe può diventare un oggetto di un ' altra classe ? La prima istruzione è più immediata , perché se y è una Mela è sicuramente un Frutto ( parliamo in questo caso di CASTING implicito ) Non è così scontata la seconda perché se x è un Frutto potrebbe non essere una Mela bensì un ' Arancia o un Mango . In questo caso è possibile effettuare un CASTING esplicito ossia un ' operazione che forza un oggetto di una classe a diventare oggetto di un ' altra classe a PATTO CHE ESSE SIANO SULLO STESSO RAMO DELLA GERARCHIA . E ' corretto allora scrivere così :
2 ) y = ( Mela ) x ; // OK : necessario CASTING ESPLICITO

Ereditarietà : Cambio di classe per un oggetto ( CASTING )

Supponiamo di avere due oggetti , x un Frutto ed y una Mela appartenenti a questa gerarchia di classi utilizzata più volte nelle nostre slide .

Supponiamo di avere effettuato le due dichiarazioni seguenti : Frutto x ; Mela y ;

Cosa possiamo dire delle assegnazioni 1 ) x = y ; // OK CASTING implicito 2 ) y = x ; // NOT OK : PROBLEMI !!

Un oggetto di una classe può diventare un oggetto di un ' altra classe ? La prima istruzione è più immediata , perché se y è una Mela è sicuramente un Frutto ( parliamo in questo caso di CASTING implicito ) Non è così scontata la seconda perché se x è un Frutto potrebbe non essere una Mela bensì un ' Arancia o un Mango . In questo caso è possibile effettuare un CASTING esplicito ossia un ' operazione che forza un oggetto di una classe a diventare oggetto di un ' altra classe a PATTO CHE ESSE SIANO SULLO STESSO RAMO DELLA GERARCHIA . E ' corretto allora scrivere così :

2 ) y = ( Mela ) x ; // OK : necessario CASTING ESPLICITO

Autore : Prof . Rio Chierego Aprile 2024