001
18.01.2005, 10:16 Uhr
Th
|
Aggregation und Komposition stellen Beziehungen dar, welche nicht auf Vererbung beruhen, sondern auf "ist Teil von" oder "besteht aus".
In C++ wird dies mittels Member-Variablen bewerkstelligt, d.h.
C++: |
class X { public:
private: Y m_y; // Komposition (stärkere Form der Aggregation) Z* m_z; // Aggregation };
|
"m_y" ist vom Typ "Y" und wird automatisch beim Anlegen eines Objekts der Klasse "X" erzeugt und auch wieder zerstört, wenn "X" zerstört wird, d.h. "m_y" kann nicht alleine existieren.
"m_z" ist dagegen ein Zeiger auf ein Objekt vom Typ "Z", d.h. dieses Objekt existiert getrennt von einem Objekt der Klasse "X", ist aber mit diesem verbunden (entweder intern oder extern). Dies kann auch mittels Referenz ("Z& m_z") ausgedrückt werden, d.h. im Konstruktor der Klasse "X" muß dann das Objekt "m_z" erzeugt werden (intern) bzw. als Parameter übergeben werden (extern).
Ich hoffe, dies hilft weiter...
Ansonsten einfach mal "googlen" mit den Stichwörtern: "Aggregation", "Komposition" und "Programmierung". |