Frage zur Strukturierung eines Programms



  • Hallo,

    ich lerne gerade C++ in der Schule und habe eine Frage zum aufrufen von cpp-Dateien.

    Ich habe jetzt z. B. einen Taschenrechner:

    main.cpp > Hier befinden sich die Aufrufe
    menü.cpp > Hier befindet sich das Menü, aus dem man aus +,-,*,/ etc. auswählen kann.
    funktionen.cpp > Hier befinden sich die ganzen Berechnungen, die aus menü.cpp aufgerufen werden.

    Naja mein Problem ist eigentlich nur, wie ich von einer .cpp-Datei auf eine andere zugreifen kann. Ich weiß wie das mit .h-Dateien funktioniert aber nicht wie man auf eine .cpp zugreift.

    Würdet Ihr es mir erklären?

    Ich hoffe dies ist einigermaßen verständlich 😉

    f. G.



  • Naja, also zuerst müssen die header der cpp-dateien in die main.cpp inkludiert sein.

    Beispiel:

    menue.h
    
    #include "stdafx.h"
    
    void menue();
    
    ______________________________
    menue.cpp
    
    #include "menue.h" (oder stdafx wenn menue.h in stdafx eingebunden ist!)
    
    void menue()
    {
     code;
     code;
     code;
    }
    

    In der main.cpp kannst du dann das menue folgendermaßen aufrufen:

    menue();
    

    Hoffe das hilft (bin auch noch am lernen...)



  • Lionhead schrieb:

    Naja mein Problem ist eigentlich nur, wie ich von einer .cpp-Datei auf eine andere zugreifen kann. Ich weiß wie das mit .h-Dateien funktioniert aber nicht wie man auf eine .cpp zugreift.

    Garnicht.

    Zu einer cpp Datei (Implementierung) legt man eine h Datei (Deklaration) an. Dann inkludiert man die entsprechende .h-Datei.

    Minibeispiel:
    // Test.h

    // Die Definies etc. sind Includegards, und müssen eindeutig benannt werden
    #ifndef TEST_HEADER
    #define TEST_HEADER
    
    int foo();
    
    #endif
    

    // Test.cpp

    // In der cpp den zugehörigen Header includieren
    #include "Test.h"
    
    int foo()
    {
      return 1;
    }
    

    // main.cpp

    #include "Test.h"
    
    int main()
    {
      return foo();
    }
    


  • Du weisst ja, dass es reicht, wenn man zum Beispiel einen Prototypen für eine Funktion schreibt, um sie "benutzen" zu können, auch wenn die Implementierung erst später folgt. Das machst du eigentlich, wenn du .h und .cpp Dateien hast. In den .h steht die Deklaration und in der .hpp steht dann die Definition von Klassen, Funktionen usw. Also reicht es, wenn du die Header (.h) includierst und der Rest der Source (.cpp) kommt dann mit dem Linker.


Anmelden zum Antworten