Differences

This shows you the differences between two versions of the page.

Link to this comparison view

appunti3s:aggregazione [2018/04/25 07:55] (current)
Line 1: Line 1:
 +====== Aggregazione ======
 +{{:​appunti3s:​cpp-aggregazione.png|}}
 +  * una linea continua con il simbolo del rombo vuoto vicino alla classe //​contenitore//​
 +  * i numerini indicano la molteplicità ​
 +  * Ha sempre UNO SOLO verso di percorrenza (quindi una regola)
 +  * la Composizione ha il simbolo del rombo pieno.
  
 +===== Principio =====
 +Il verbo usato per descrivere questa relazione è //has//: possedere, avere, essere composto da... 
 +Nell'​Aggregazione le classi componenti esistono indipendentemente dalla classe contenitore
 +
 +===== Come si realizza? =====
 +Possedere un oggetto significa avere un oggetto membro di quel tipo...
 +Le classi componenti esistono indipendentemente dalla classe contenitore,​ quindi __non__ è necessario definire tali classi all'​interno dei contenitori,​ come lo è invece nella composizione. <​del>,​ perciò il distruttore del contenitore **non** si deve occupare della distruzione delle componenti.</​del>​ <​del>​Se la molteplicità è uno si realizza aggiungendo dei reference nella classe //​contenitore//​.
 +Se la molteplicità è maggiore di uno si implementa con array di puntatori o vector (i vector lavorano per copia)
 +</​del>​
 +<​code>​
 +class B
 +{
 + //...
 +};
 +
 +class A
 +{
 +   ​private:​
 +        B m_b;
 +};
 +</​code>​
 +
 +
 +===== Esempio =====
 +File sorgenti di un esempio di {{:​appunti3s:​aggregazione.zip|aggregazione}}
 +
 +===== Esercizio =====
 +Creare le classi per disegnare punti e segmenti sul piano cartesiano.
 +Lo stesso esempio può essere risolto:
 +  * con l'​aggregazione se considero i punti pre-esistenti al segmento e quindi indipendenti.
 +  * con la composizione se considero di creare due nuovi punti per ogni segmento (non rappresento punti singoli)
 +  * 
 +====Analisi del problema====
 +  - il segmento può essere creato a partire da punti pre-esistenti?​
 +  - cosa accade al punto se distruggo il segmento?​(esclusività)
 +  - cosa accade al segmento se distruggo un suo punto?
 +  - un punto può appartenere a due segmenti contemporaneamente? ​
  • appunti3s/aggregazione.txt
  • Last modified: 2018/04/25 07:55
  • (external edit)