Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Header-Abhängigkeiten

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
bakunin



Anmeldungsdatum: 16.08.1999
Beiträge: 597
Wohnort: Lorsch (Südhessen)

BeitragVerfasst am: 25. Nov 2000 16:50   Titel: Header-Abhängigkeiten

Hallo!

Ich muss mal wieder eine relativ blöde Frage stellen.

Gegeben ist folgende Situation: Ich habe zwei Headerdateien, nennen wir sie foo.h und bar.h. In jeder wird ein Namensraum beschrieben (Foo und Bar). In beiden Namensräumen befinden sich unter anderem auch typedefs, z.B. Foo::baz und Bar::qux. Nun benötigen Funktionen aus dem Namensraum Foo aber als Argument einen Wert vom Typ Bar::qux und umgekehrt erhalten Funktionen aus Bar Paramater des typs Foo::baz.

Ich finde diese Situation nicht sonderlich ungewöhnlich.

Nun habe ich allerdings das Problem, dass der Header foo.h den Header bar.h #includen muss und umgekehrt. Das führt dazu, dass der Compiler beim Einlesen von einem der beiden Header natürlich die Deklarationen aus dem anderen noch nicht kennt.

Der Code lässt sich also nicht compilieren. Nun ist meine Frage, ob man so eine Situation eben vermeiden sollte oder ob es einen sinnvollen Ausweg gibt. Alles nötige bereits vor dem #includen des jeweils anderen Headers zu deklarieren empfinde ich als unschöne Lösung (Header-Dateien heißen nicht ohne Grund so), oder sollte/muss man es tatsächlich so lösen?

Grüße von Wolf "Um Rekursion zu verstehen, muss man zuerst Rekursion verstehen" gang
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen

hjb
Pro-Linux


Anmeldungsdatum: 15.08.1999
Beiträge: 3236
Wohnort: Bruchsal

BeitragVerfasst am: 26. Nov 2000 10:39   Titel: Re: Header-Abhängigkeiten

Hi,

wenn Header sich gegenseitig includen müssen, dann sollte man wohl das Design überdenken...

Wenn es nur darum geht, einen Typ als Klasse bekannt zu machen, kann man auch deklarieren:

class Foo::baz;

und sich das #include schenken.

Gruß,
hjb
_________________
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy