Eine Frage zu mehrerern cpp´s



  • Hallo,

    ich habe ein Project das aus nur einer cpp datei besteht. Und natürlich aus den ganzen builder dateien, aber das ist ja egal. Nun ist diese cpp datei mittlerweile so groß geworden, das sie unübersichtlich ist. Ich habe mir gedacht das ich sie in mehrere cpp dateien zerlegen könnte, am besten mit sinn gemäßer aufspaltung. Jetzt habe ich das Problem das ich eine größere Funktion in eine eigene cpp datei verlegen will, nur das diese Funktion auf Variablen zurückgreift, die von anderen Funktionen, welche nicht verlegt werden sollen, auch benutzt werden.

    Mein Lösungsansatz war einfach diese Variablen ebenfalls in eine eigene cpp zu packen, und bei den anderen cpp dateien habe ich einfach diese variable-cpp (var.cpp) per include includiert.

    Das funktioniert jedoch nicht weil dann die Meldung kommt das genau diese Variablen, die in var.cpp deklariert werden, mehrfach deklariert werden würden, was ich mir auch erklären kann, da in 2 weiteren cpp dateien diese var.cpp am anfang geincludet wird.

    Nun, ich weiss nicht ob 1) durchgekommen ist was ich da vor hatte
    2) das ganze überhaupt funktioniert

    zu erläuterung nochmal: das ganze ist ein BVorland C++ Builder 6.0 Projekt, welches ursprünglich aus nur einer cpp datei bestand, und in zukunft aus mehreren cpp dateien bestehen soll. Hauptaugenmerkt liegt hier auf jener dieser cpp dateien, in der von mehreren in unterschiedlichen cpps abgelegtenn Funktionen benutzte Variablen deklariert werden.

    Ich hoffe mir kann geholfen werden^^



  • Hallo,

    Am besten wäre es wohl, dein Projekt so umzustrukturieren, dass du keine globalen variablen mehr brauchst. Eine freie Funktion sollte nur Variablen bearbeiten, dies sie als parameter übergeben bekommen hat. Es gibt natürlich auch da Ausnahmen.
    Klassen werden normalerweise komplette in eine ccp + h gepackt.
    Wenn du es wirklich weiter mit globalen Variablen versuchen willst schau dir mal das schlüsselwort extern an.



  • danke erstmal für die schnelle antwort,

    da ich mir das was ich weiss selber beigebracht habe habe ich teilweise lächerliche wissenlücken. Ich gehe davon aus das globale variablen solche sind die nicht nur in einer cpp verwendet werden/bzw. sogar nur in einer Funktion?

    Ich nehme mal an das es einen trifftigen Grund gibt warum du mir von globalen Variablen abrätst. Kannst du grob umreissen wiso?

    Ahja, was eine Klasse ist weis ich auch nicht ganz genau, TForm ist eine Klasse oder? ist eine Klasse sowas wie ein sehr komplexes Struct?

    hoffe du hast den Elan das zu beantworten^^



  • Das Thema ist schon oft besprochen worden, weswegen ich dir erstmal nur ein paar Links zu lesen gebe.

    Thema globale Variablen
    http://tutorial.schornboeck.net/scope.htm
    http://www.imb-jena.de/~gmueller/kurse/c_c++/c_globv.html
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-214549
    http://www2.informatik.uni-halle.de/lehre/c/c_linkag.html

    Thema Klassen
    Ja TForm ist eine Klasse. Du solltest dir zu diesem Thema mal ein (oder mehrere) Tutorial durchlesen oder noch besser ein Buch über C++ anschaffen (z.Bsp. das hier ISBN 3826608240)
    Tutorials
    http://tutorial.schornboeck.net/oop2.htm
    http://www.ica1.uni-stuttgart.de/Courses_and_Lectures/C++/script/node16.html
    So, das wars jetzt erstmal.

    Ciao und schönes WE



  • ausgezeichnet...., vielen dank.

    Ich glaube das hilft mir weiter, schönes WE dir auch


Anmelden zum Antworten