#include-Hirarchie (c++)

Fragen zu allen anderen Programmiersprachen.
Kekskiller
Beiträge: 752
Registriert: 14.09.2004 21:39
Kontaktdaten:

#include-Hirarchie (c++)

Beitrag von Kekskiller »

Hi Leute,

Hab seit ner Weile mit nem Logikproblem beim Compilieren meiner C++-Projektes mit Dev-C++ zu tun.

Folgendes:
Ich hab ne "main.cpp" und zwei weitere ".cpp"s mit dazugehörigen Headern. Da aber jeweils die Cpp- und die Header die jeweils anderen Cpps und Headerdateien benötigen, kommt unweigerlich eine Doppelung auf, so dass die Compilierung verhindert wird.

Wie lös ich das nu? Eine Lösung wäre vielleicht mit #include irgendwie in ein übergeordnetes Verzeichnis gehen zu können, aber mit "..\" kommt man da nicht weiter.

Wie zum Teufel soll das nun funktionieren :evil: ?
Mit Purebasic wär mir das nicht passiert...
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: #include-Hirarchie (c++)

Beitrag von Kiffi »

Kekskiller hat geschrieben:Wie zum Teufel soll das nun funktionieren :evil: ?
mal ganz naiv gefragt: sowas wie XInclude gibt's da nicht?

Grüße ... Kiffi
Hygge
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

normalerweise löst man das über Compilerdirectiven wie z.B. #IfDefined

PS:
Beispiel aus dem C-Script von POVRay:

Code: Alles auswählen

#ifndef(Colors_Inc_Temp)

#declare Colors_Inc_Temp = version;

// Hier das komplette Includefile

#end
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Kekskiller
Beiträge: 752
Registriert: 14.09.2004 21:39
Kontaktdaten:

Re: #include-Hirarchie (c++)

Beitrag von Kekskiller »

Kiffi hat geschrieben:mal ganz naiv gefragt: sowas wie XInclude gibt's da nicht?
Tja, an sowas praktisches hat man damals wohl nicht gedacht...
Kaeru Gaman hat geschrieben:normalerweise löst man das über Compilerdirectiven wie z.B. #IfDefined
Jaaa-haha! Das wirds wohl sein... Danke für den Tipp :allright:
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

Ein paar Compiler unterstützen auch das etwas bequemere "#pragma once", das schreibt man einfach in die erste Zeile einer Headerdatei und dann wird diese immer nur einmal inkludiert. Das ist wohlgemerkt aber kein Bestandteil von ISO C++, wird also nicht überall unterstützt. Kannst es ja mal ausprobieren, vielleicht macht Dev-C++ das ja auch.
Antworten