hilfe



  • hi,

    ich habe ein Problem mit dem Einbinden von source files

    ich habe 3 Files:

    main.cpp
    Modul.cpp
    Header.h

    #include "stdafx.h"
    #include "Header.h"
    
    // meine globale Variablen
    int Test1=4;
    int Test2=5;
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    
    Fehler();
    
    	return 0;
    }
    
    void Test(int a, int b)
    {
      printf("Dies ist ein Test\n%d\n%d",a,b);
    }
    

    Header.h

    #ifndef _Header_h_
    #define _Header_h_
    
    void Test(int, int);
    void Fehler(void);
    #include "Modul.cpp"
    
    #endif
    

    Modul.cpp

    void Fehler(void)
    {
       Test1 = Test2 * Test2;
       Test(Test1, Test2);
       printf("noch nicht mal das klappt");
    }
    

    Worauf ich bei diesem Beispiel hinaus will, ist, dass ich auf
    globale Variablen und Funktionen in main.cpp nicht in eingebundenen
    source-Files zugreifen kann 😕

    Irgendwie hab ich wohl etwas Grundlegendes beim Einbinden der Dateien
    falsch gemacht oder habe einfach nen Verständnisfehler
    (Bin von VB auf C++ umgestiegen und da sind globale Variablen in allen
    Modulen abrufbar und wirklich global :p )

    Ich wäre euch sehr dankbar, wenn mir das jemand nochmal erklären könnte
    oder mir wenigstens ne vernünftige Referenz zum Nachlesen angeben könnte.

    MfG

    Anfänger



  • Hi erstmal bitte mach doch nen gescheiten Titel das nächste mal wenn du eine Frage hast.

    2. wenn du C++ Code hast dann nimm doch auch Codetags für C++

    und last but not least schau mal im Forum bevor du was fragst grad eben war nahezu die gleiche Frage hier



  • tut mir leid aber mit diesem Thread kann ich einfach nichts anfangen 😕



  • na da steht drin du machst das ma besten mit set und get Funktionen und wie man den Mainframecastet. Was brauchst du noch für Infos??



  • Wandfliese schrieb:

    Header.h

    #ifndef _Header_h_
    #define _Header_h_
    
    void Test(int, int);
    void Fehler(void);
    #include "Modul.cpp"
    #endif
    

    Also implementationen werden normalerweise nicht includiert. ( #include "Modul.cpp").
    um deine beiden valiablen Test1 und Test2 global und auch in jeder Kompilationseinheit sichtbar zu machen sollte dein header.h so aussehen:

    #ifndef _Header_h_
    #define _Header_h_
    
    void Test(int, int);
    void Fehler(void);
    extern int Test1;   // sind in Main.cpp 
    extern int Test2;
    #endif
    

    Trotzdem solltest du globale Variablen nicht verwenden. Mach dich mal über Singleton Klassen schlau.
    Kurt



  • thx werd ich machen 🙂


Anmelden zum Antworten