C++: Klasse Dateiübergreifend verwenden

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
Birne94
User
Beiträge: 90
Registriert: Freitag 28. November 2008, 15:18
Kontaktdaten:

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
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

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? ;-)
Das Leben ist wie ein Tennisball.
Birne94
User
Beiträge: 90
Registriert: Freitag 28. November 2008, 15:18
Kontaktdaten:

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 ;)
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
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

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.
Antworten