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


Log in to reply