.dsy:it.
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)


Posted by Armakazam on 24-01-2009 17:34:

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


Posted by sHADOw001 on 25-01-2009 12:15:

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


Posted by Armakazam on 25-01-2009 18:50:

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!


Posted by sHADOw001 on 25-01-2009 23:36:

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.