Mehrere Klassen in einer Datei: Forward Deklaration
-
Hi,
mein Professor zwingt mich leider meine C++ Aufgaben in einer Datei abzugeben. Ich habe sowas noch nicht gemacht und daher Schwierigkeiten: Klasse A ruft in Methode foo die Methode boo von B auf (A hat eine Membervariable, die ein Pointer auf ein Objekt vom Typ B ist). B ruft in Methode hoo auf die Methode goo von A auf. Meine Datei sieht etwa so aus:
class A; class B; // ERROR: forward declaration of »struct B« class A { ... void goo() { ... } void foo() { b->boo(); // ERROR: invalid use of undefined type »struct B« } B* b; }; class B { ... void boo() { ... } void hoo() { a->goo(); } A* a; };GCC gibt mir Fehler: "invalid use of undefined type" und "forward declaration".
Was kann ich tun? Ist es überhaupt möglich das in einer Datei zu machen?
Danke,
Heiner
-
Nein, das geht so auf keinen Fall...
Wenn die Deklarationen der Klassen in einer .h Datei und die Definitionen in einer .cpp Datei stehen dann gehts.
EDIT: Urgs, ist natürlich quatsch, Du kannst Definition und Deklaration auch in einer Datei trennen...
class A { void foo(); }; void A::foo() { b->goo(); }Musst dann eben zuerst nur die Klassen A und B deklarieren und dann die methoden ausschreiben...