Zgodzę się z Tobą, ale za taką odpowiedź to byś otrzymał z 6 punktów na 10. Oto przykłady:
1.) Asocjacja:
class Klasa2;
class Klasa1{
public: //w zasadzie nieważne jaka tu hermetyzacja jest
void posuwanie_laski_na_tapczanie(Klasa2 *x);
void posuwanie_laski_na_sianie(Klasa2 &x);
void posuwanie_laski_na_parkingu(Klasa2 x);
Klasa *posuwanie_laski_na_lozku(void);
Klasa &posuwanie_laski_w_lesie(void);
Klasa posuwanie_laski_na_masce_samochodu(void);
//watpliwości wzbudzają metody w których zwracany jest jakiś typ Klasy2
}
//powyżej wszystkie możliwe typy asocjacji jaka może być
2.) Agregacja
class Klasa3{
//public: //hermetyzacja nieistotna
Klasa2 *prezerwatywa;
Klasa2 &dziurawa_prezerwatywa;
//założenie dodatkowe - żadnego z powyższych pól Klasa3 nie tworzy w swoich metodach operatorem new, malloc, nieco wątpliwości wzbudza czy aby na pewno pole z dziurawą prezerwatywą jest typem agregacji.
};
3.) Kompozycja
to samo co Klasa3+warunek, że pola tworzone i usuwane w metodach Klasy3
Dodatkowo do Kompozycji należy pole np.
Klasa2 seksik;
Kto może rozwiaż powyższe wątpliwosci to zapraszam do wypowiedzenia się. Przykłade troche hardkorowe ale za to szybko w pamięci zostają. Pozdrawiam