Seite 1 von 1

C++: Klasse Dateiübergreifend verwenden

Verfasst: Sonntag 21. Juni 2009, 12:29
von Birne94
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

Verfasst: Sonntag 21. Juni 2009, 12:37
von EyDu
Das nennt man dann Design-Fehler.

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"
Das macht die Sache aber NICHT besser!

P.S.: Dir ist schon klar, das dass hier in Python-Forum ist? ;-)

Verfasst: Sonntag 21. Juni 2009, 12:56
von Birne94
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...)
P.S.: Dir ist schon klar, das dass hier in Python-Forum ist?
Dies ist der Offtopic bereich ;)

Verfasst: Sonntag 21. Juni 2009, 13:24
von BlackJack
@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

Verfasst: Sonntag 21. Juni 2009, 13:48
von BlackVivi
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
Jop, vollkommen richtig. Nennt man auch Include-Wächter.