Table of Contents

Aggregazione

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. , perciò il distruttore del contenitore non si deve occupare della distruzione delle componenti. 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)

class B
{
 //...
};

class A
{
   private:
        B m_b;
};

Esempio

File sorgenti di un esempio di aggregazione

Esercizio

Creare le classi per disegnare punti e segmenti sul piano cartesiano. Lo stesso esempio può essere risolto:

Analisi del problema

  1. il segmento può essere creato a partire da punti pre-esistenti?
  2. cosa accade al punto se distruggo il segmento?(esclusività)
  3. cosa accade al segmento se distruggo un suo punto?
  4. un punto può appartenere a due segmenti contemporaneamente?