Hallo erstmal xD,
Ich habe (mal wieder) ein Problem mit C++ . Und zwar folgendes:
Ich habe mehrere Quelldateien und zugehörige Headerdateien. In der ersten Headerdatei ist eine Klasse deklariert. Nun will ich in der zweiten Quell-/Headerdatei genau diese Klasse verwenden. Das Problem ist nur, dass die erste Headerdatei die 2. einbindet und ihc daher von der zweiten aus die erste nicht einbinden kann, da es sonst zu einer endlosen Rekursion kommen würde.
Gibt es dafür eine andere Möglichkeit?
(Wenn die Quelltexte nötig sind, schreibt^^)
thx schonmal
~Birne
C++: Klasse Dateiübergreifend verwenden
Das nennt man dann Design-Fehler.
Du könntest eine dritte Include-Datei machen, die du dann statt der 1. und 2. einbindest:
Das macht die Sache aber NICHT besser!
P.S.: Dir ist schon klar, das dass hier in Python-Forum ist?
Du könntest eine dritte Include-Datei machen, die du dann statt der 1. und 2. einbindest:
Code: Alles auswählen
class KlasseAusEins;
class KlasseAusZwei;
#include "Eins.h"
#include "Zwei.h"
P.S.: Dir ist schon klar, das dass hier in Python-Forum ist?
Das Leben ist wie ein Tennisball.
geht nicht :s
Ergänzung: Ich will eine Instanz von der Klasse aus der ersten Header-/Quelldatei in der zweiten benutzen (Zeiger auf void klappt irgendwie nicht...)
Ergänzung: Ich will eine Instanz von der Klasse aus der ersten Header-/Quelldatei in der zweiten benutzen (Zeiger auf void klappt irgendwie nicht...)
Dies ist der Offtopic bereichP.S.: Dir ist schon klar, das dass hier in Python-Forum ist?
@Birne94: Normalerweise benutzt man dafür den Präprozessor und sorgt darüber dafür, dass der Inhalt nur beim ersten ``include`` berücksichtigt wird. Ungetestet:
Code: Alles auswählen
#ifndef FOOBAR_H
#define FOOBAR_H
// Definitionen.
#endif
Jop, vollkommen richtig. Nennt man auch Include-Wächter.BlackJack hat geschrieben:@Birne94: Normalerweise benutzt man dafür den Präprozessor und sorgt darüber dafür, dass der Inhalt nur beim ersten ``include`` berücksichtigt wird. Ungetestet:
Code: Alles auswählen
#ifndef FOOBAR_H #define FOOBAR_H // Definitionen. #endif