Help - Esercizio Clicca QUI per vedere il messaggio nel forum |
Armakazam |
ciao a tutti..
avrei bisogno di una mano, penso anche veloce...
non frequentando ho alcune difficoltà a capire lo svolgimento di un esercizio su alcuni assegnamenti:
lo trovate nel .pdf , l'esercizio 4, la seconda parte..
c'è qualcuno che cortesemente riesce a spiegarmi come affrontare questo tipo di esercizio? come capire se l'assegnamento è consentito o no?
perchè per la prima parte è semplice, ma nella seconda non riesco bene a capire che ragionamento usare...
grazie dell'aiuto a tutti |
sHADOw001 |
Allora, provo a spiegartelo anche se sono un po' arrugginito su questo genere di esercizio! :D
a1 = c2 è consentito perchè sia a1 che c2 hanno in comune la superclasse A.Benchè in a1 vi sia un oggetto di tipo B, esso è dichiarato come A.
(Anche se in realtà c2 andrebbe inizializzato altrimenti il compilatore segnala errore)
b = a2 non è consentito perchè b è di tipo B dichiarato come B, quindi benchè esteso da A non ha legami con a2 che contiene un D.
b = a1 è consentito solo con cast perchè b è di tipo B e a1 è di tipo A contente B in questo caso.Essendo B una classe estesa da A, può contenere possibili oggetti A a patto che essi vengano castati come B.
e per ultimo, b = c1 non è consentito perchè B non ha legami con c1 di tipo C con dentro un D.
Il mio consiglio è quello di scriverti al volo le classi A, B, C, D e provare a fare degli assegnamenti.
In linea di massima devi controllare il tipo dei due oggetti: se due oggetti sono dello stesso tipo e contengono oggetti della stessa classe o di una classe estesa, l'assegnamento è valido con o senza cast, a seconda dell'ordine gerarchico in cui avviene l'assegnazione.Se le due classi sono di tipo diverso, come un oggetti B b e un C c (con dentro un D, ad esempio), non è valido perchè non ci sono legami.
Un oggetto di tipo A può contenere un A, un B, un C e un D.
Un oggetto di tipo B può contenere un B o un A castato.
Un oggetto di tipo C puo contenere un C, un A castato, un B castato o un D.
E oggetto di tipo D puo contenere un D, un C castato, un B castato e un A castato.
Spero di esserti stato di aiuto |
Armakazam |
Be...devo dire che mi hai dato veramente una spiegazione perfetta!
Ora mi è chiaro l'esercizio (Che poi può sembrare una banalità, ma trovandemole davanti senza averci mai ragionato mi è sembrato più complesso di quel che è)
Grazie anche per il consiglio, ne terrò conto! |
sHADOw001 |
Di niente, figurati, in bocca al lupo ;) |
|
|
|