Anfängerfrage zu Klassendeklarationen
-
Hi,
2 verschiedene Klassen, jede enthält als Member einen Pointer auf die
andere Klasse. Wie deklariert man sowas, weil folgendes Mini-Prog kann nicht
mit g++ compiliert werden wegen
"ISO C++ forbids declaration of ‘B’ with no type".using namespace std; class A { B * p; }; class B { A * p; }; int main(void) {}
-
class A { class B* p; }; class B { A* p; }; int main() {}bb
edit: das nennt man "forward declaration"
-
das ging ja schnell, dankeschön

-
Du kannst die Klasse auch ausserhalb vorwärts-deklarieren:
class B; class A { B* p; };Finde ich noch praktisch, da man gerade am Anfang des Headers die Abhängigkeiten verschiedener Klassen sieht. Ausserdem kann man sich so einige
class-Schlüsselwörter sparen, wenn die Klasse in verschiedenen Scopes benötigt wird.