visual studio 2008 & *.cpp, *.h



  • hallo,

    vorsicht anfängerfrage:

    ich bin gerade am spielen mit einem tutorial aus dem inet. dieses wächst so langsam an und ich dachte mir, das es vielleicht sinn machen würde, den ganzen source zwecks der übersicht in ein bisschen kleinere teile zu zerlegen. was mir da vorschweben würde, wäre zum beispiel einzelne sourcefiles für die definition der globalen variablen und der defines.

    macht das überhaupt sind und wäre das ein "übliches" vorgehen?

    probiert habe ich das ganze natürlich auch schon 🙂

    geht aber nicht mit meiner einfach gedachten methode.
    ich habe versucht, die sourcefiles mit den "ausgelagerten" daten einfach per include *.cpp ins main.cpp einzubinden. das läuft schief, sobald ich dort variablen definiere.
    wie ich dem inet entnehmen konnte, liegt das meiner nicht eingebauten header unterstützung, was ich soweit auch verstanden habe (denke ich). ich habe gelernt, das ich eine header datei verwenden kann, um dort z. b. prototypen anzulegen. deren deklaration liegt dann in einem *.cpp, dass diesen header includiert, den auch das main.cpp includiert. so haben über den includierten header alle zugriff auf die deklaration und die definition. richtig?

    was aber nun, wenn mein header file gar nichts beeinhaltet? z. b. so:

    main.cpp

    // hauptprogram
    include "globals.h"
    ...
    ...
    ...
    

    globals.cpp

    // globale variablen, die auch in main.cpp verfügbar sein sollen
    include "globals.h"
    int blub;
    ...
    

    globals.h

    ???
    

    was schreibe ich da jetzt in globals.h?

    ich wäre dankbar, wenn mir jemand zeigen könnte, wie ich sowas formulieren kann, oder, falls ich auf dem vollkommen falschen dampfer bin, wenn mir jemand den rechten weg zeigen könnte.

    vielen dank!

    gruß pacy



  • Wenn du schon Globale erzeugen willst, dann deklarier sie in globals.h und auch in main.cpp mit "extern":

    globals.h

    int blub;
    

    main.cpp

    #include globals.h
    
    extern int blub;
    

    Aber von Globalen würde ich dir (außer in ganz wenigen Fällen) abraten. Sowas ist unnötig und schlechter Stil. Wozu willst du die denn benutzen?

    Merke: Niemals cpp-Dateien per #include einbinden! Man bindest eigentlich nur Header ein.


Anmelden zum Antworten