Sinnvoll ist eine strukturierte Vorgehensweise. Trenne die drei Klassen
so auf, daß Du je Klasse eine Headerdatei mit der Deklaration und ein
C++-Sourcefile mit der Implementierung hast.
Wenn in einer der Klassen mit Pointern auf Instanzen der anderen Klassen
zugegriffen werden soll, dann genügt i.d.R. eine Vorwärtsdeklaration
der anderen Klasse:
1 | // KlasseA.h
|
2 |
|
3 | class KlasseB; // Vorwärtsdeklaration
|
4 |
|
5 | class KlasseA
|
6 | {
|
7 | public:
|
8 | KlasseA();
|
9 | ~KlasseA();
|
10 |
|
11 | protected:
|
12 | void machwas();
|
13 |
|
14 | KlasseB* pAufB;
|
15 | };
|
Das #include der Klassendeklaration für KlasseB ist erst bei der
Implementierung der Funktionen von KlasseA erforderlich, also erst in
der zu KlasseA gehörenden C++-Datei. Für die Deklaration in der
Headerdatei aber genügt die Information, daß es eine Klasse namens
"KlasseB" gibt, um Pointer darauf nutzen zu können. Und genau die stellt
obige Vorwärtsdeklaration zur Verfügung.
Wie schon von anderen geschrieben: Besorg Dir ein gutes Buch über C++.