Include Problem bei mehreren CPP-Dateien
-
Ich habe mehrere CPP-Dateien, die auf alle Variablen und Funktionen aller CPP Dateien zugriff haben sollen.
hier einmal ganz vereinfacht://File1.cpp #include "File2.cpp" #include <stdio.h> int a; void main(void) { a=Func1(5,2); printf("%i",a); } int Modulo(int q, int w) { return q % w; } //############################### //File2.cpp #include "File1.cpp" #include <stdio.h> int Func1(int q, int w) { q++; return Modulo(q,w); }
es soll also von allen cpp-dateien auf alle vars und funktionen anderer CPP-Dateien zugreifen können.
Ich benutze den BCB6 und dewr gibt mir als Fehlermeldung aus: "includes zu tief verschachtelt"
ich hoff mir kann einer weiterhelfen
heimschmiede
-
Hi,
wäre es nicht einfacher eine *.hpp mit der Deklaration der Funktionen und eine *.cpp mit der Definition zu erstellen und diese dann in die anderen Source-Dateien einbindest?
Bye
-
ich hoff, ich hab dich richtig verstanden. aber ich hab jetzt folgenden quelltext erstellt und Fehlermeldung:
"Präcompilierter Header: Code kann im Header nicnht erzeugt werden"
"Für die Funktion Addition(int,int) existiert bereits ein Funktionsrumpf"//a1.cpp #include "header.hpp" void main(void) { printf("%i", Addition(5,2); } int Subtraktion(int q, int w) { return q.w; } //############################################ //a2.cpp #include "header.hpp" int Addition(int q, int w) { int temp=q+w; temp=Subtraktion(temp,w); return temp; } //############################################ //header.hpp #ifndef HEADER_HPP #define HEADER_HPP #include "header.hpp" #include <stdio.h> #include "a1.cpp" #include "a2.cpp" void main(void); int Addition(int q, int w); int Subtraktion(int q, int w); #endif
oder meintest du, für jede CPP-Datei eine eigene Header?
heimschmiede
-
ah, danke. es funktioniert.
ich hab für jede CPP ne eigene Header erstellt und alle eingebunden.
einziger Nachteil: alle Variablen, die eben über die CPP-Grenzen hinaus benutznar sein sollen muss ich in der Header deklarieren.gibt es denn da keine einfacherere Lösung?
heimschmiede
-
Salut,
na ja, knapp daneben. Ich meinte das so (Bezug zum ersten Quellcode, zweiter ist ziemlich übel)
//header.hpp #ifndef HEADER_HPP #define HEADER_HPP int Modulo(int q, int w) ; int Func1(int q, int w); #endif //header.cpp #include <stdio.h> #include "header.hpp" int Modulo(int q, int w) { return q % w; } int Func1(int q, int w) { q++; return Modulo(q,w); } //main.cpp #include "header.hpp" #include <stdio.h> int main(int argc, char **argv) { int a=Func1(5,2); printf("%i",a); }
Das sollte ungefähr so aussehen. Normalerweise nimmt man eigentlich eine Klasse für viele Funktionen,
aber nevermind.See ya