Il verbo usato per descrivere questa relazione è has: possedere, avere, essere composto da… Nella Composizione le classi componenti esistono solo in relazione alla classe contenitore. Non si possono creare oggetti al di fuori di tali classi.
Poiché la relazione è forte è necessario dichiarare una classe nel namespace di una classe contenitore. In questo modo è realizzato anche il principio dell'esclusività.
Class A { private: Class B { }; };
In questo modo tutte le funzioni membro della classe contenitore hanno accesso a tutti i dati membro dell'altra classe. Il costruttore della classe contenitore inizializzerà questi oggetti come inizializza gli altri oggetti. Se gli oggetti sono creati nello stack verranno inizializzati/distrutti automaticamente, mentre se puntato nell'heap dovrà occuparsene il costruttore/distruttore.
Se è necessario usare più volte questi oggetti (come 4 gambe di un tavolo) si possono usare vector.
Non confondere la molteplicità con il numero di versi di navigabilità.
Se la molteplicità è uno si realizza aggiungendo dei puntatori nella classe contenitore.
Se la molteplicità è maggiore di uno si implementa con i vettori
Codice sorgente con esempio di composizione
Creare le classi per disegnare punti e segmenti sul piano cartesiano. Lo stesso esempio può essere risolto: