C++-Programmierung/ Eigene Datentypen definieren/ Klassen als Datenelemente einer Klasse
Aus Wikibooks
Analog zu Basistyp-Variablen, können Sie auch Klassenobjekte als Member einer Klasse deklarieren. Dies funktioniert genau so, wie Sie es schon kennen.
Nun enthält die Klasse B ein Objekt der Klasse A.
[Bearbeiten] Verweise untereinander
Manchmal ist es nötig, dass zwei Klassen einen Verweis auf die jeweils andere enthalten. In diesem Fall muss die Klassendeklaration von der Klassendefinition getrennt werden. Wie auch bei Funktionen gilt, dass jede Definition immer auch eine Deklaration ist und das Deklaration beliebig oft gemacht werden können, während Definition nur einmal erfolgen dürfen.
Um ein Klassenobjekt zu Deklarieren, muss die gesamte Klassendefinition bekannt sein. Wenn Sie hingegen nur einen Zeiger oder eine Referenz auf ein Klassenobjekt deklarieren möchten, genügt es, wenn die Klasse deklariert wurde.
class B{
// B enthält eine Referenz auf ein A-Objekt
A& a_objekt;
};
class A{
// A enthält ein B-Objekt
B objekt;
};
Falls Ihnen jetzt die Frage im Hinterkopf herumschwirrt, ob es möglich ist, dass beide Klassen ein Objekt der jeweils anderen enthalten, dann denken Sie noch mal darüber nach, was diese Aussage bedeuten würde. Die Antwort auf diese Frage ist selbstverständlich nein.