![]() |
Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Fondamenti di architettura e programmazione (http://www.dsy.it/forum/forumdisplay.php?forumid=234)
-- Help - Esercizio (http://www.dsy.it/forum/showthread.php?threadid=37493)
Help - Esercizio
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
Allora, provo a spiegartelo anche se sono un po' arrugginito su questo genere di esercizio!
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
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!
Di niente, figurati, in bocca al lupo
All times are GMT. The time now is 17:58. | Show all 4 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.