Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Didattica > Corsi A - F > Fondamenti di architettura e programmazione
 
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 ;)

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate