Globale Variable



  • Robertico schrieb:

    Cpt.Tanga schrieb:

    http://www.softgames.de/forum/viewtopic.php?t=116320

    Was soll das bedeuten? Hast du noch nie versucht von mehreren eine Antwort zu kriegen?
    ...

    nein. erstmal ne weile in einem forum auf eine antwort warten vielleicht...
    extern koennte helfen.
    auch das hier koennte helfen...http://bcb-tutorial.c-plusplus.net/registry/index.html



  • @Caipi:
    Bei mir hat's bisher immer gefunzt. Allerdings hab ich globale Variablen bisher nur für Enums und Konstanten genutzt.
    Den Rest soll man ja kapseln. 😉



  • @Caipi

    Danke, das war sehr gut erklärt. Ich danke Dir für diese qualifizierte Antwort. Sie hilft mir das System zu verstehen. Ich kann zwar schon gut "sprechen" nur muß ich die "Sprache" C++ noch lernen. Im Momment spreche ich zwar noch wie ein Ausländer, aber das wird sich geben. Und wenn es solch gute Leute gibt wie dich, die etwas von ihrem Wissen abgeben, wird das auch nicht so lange dauern.

    Vielen Dank

    Robert



  • Cpt.Tanga schrieb:

    Robertico schrieb:

    Cpt.Tanga schrieb:

    http://www.softgames.de/forum/viewtopic.php?t=116320

    Was soll das bedeuten? Hast du noch nie versucht von mehreren eine Antwort zu kriegen?
    ...

    nein. erstmal ne weile in einem forum auf eine antwort warten vielleicht...
    extern koennte helfen.
    auch das hier koennte helfen...http://bcb-tutorial.c-plusplus.net/registry/index.html

    Siehst du, hier habe ich die Antwort bekommen. Hätte ich jetzt gewartet wie ein braver Tropf, wäre mir diese Antwort vielleicht nie zu gesicht gekommen.

    Ich finde es nicht verwerflich in mehreren Foren die gleiche Frage zu stellen. Und auch Zeitgleich. Hat man nämlich eine Frage, so brennt die meistens. Man will es jetzt wissen und nicht in einer Woche. So sind die Menschen halt.

    Auf meiner Suche nach irgendwas halte ich auch an, wenn irgendjemand etwas nicht weis, was ich weis. Und ich bemühe mich es ihm verständlich zu machen.

    Dazu denke ich gibt es die Foren.

    Gruß Robert



  • don_basto schrieb:

    @Caipi:
    Bei mir hat's bisher immer gefunzt. Allerdings hab ich globale Variablen bisher nur für Enums und Konstanten genutzt.
    Den Rest soll man ja kapseln. 😉

    Wenn du ein enum wie folgt im File-Scope einer Datei definierst:

    enum my_special_enum { special_value1, special_value2 };
    

    kannst du nicht davon sprechen, dass hier eine globale Variable oder ein globales Objekt angelegt wurde. Hier erzeugst du nichts physisches sondern vielmehr einen abstrakten "Bauplan" nach welchem Objekte dieses Typs erzeugt werden.
    Dein Argument mit den Konstanten verstehe ich nicht ganz. Zeig doch mal einen entsprechenden Code :).

    Gruß Caipi



  • @Caipi

    (Später berichtigt, hatte doch schon geantwortet. Doppelt genäht hält besser)
    Habe gerade mit Erschrecken festgstellt, daß ich noch nicht geantwortet habe. Im Kopf hatte ich das schon, aber mit Telepatie :p sind wir ja noch nicht so weit.

    Auf jeden Fall möchte ich mich dafür bedanken, daß es solche Menschen gibt wie Dich. Ich stoße oft auf Missverständnis. Ich solle doch mit Konsolenprogrammen machen. Vielleicht haben die Leute recht. Ich weiß micht. Nur habe ich schon so viel im Kopf, das muß nur erweitert werden.

    Ich hab Konsolenprogramme gemacht. Klar. Hab auch überall unten angefangen. Nur kann ich besser beim Problemelösen lernen.

    Und dabei hast Du mir geholfen. Auch so kann man einen Zsammenhang verstehen.

    Vielen vielen Dank

    Robert



  • Robertico schrieb:

    @Caipi

    Habe gerade mit Erschrecken festgstellt, daß ich noch nicht geantwortet habe. Im Kopf hatte ich das schon, aber mit Telepatie :p sind wir ja noch nicht so weit.

    Auf jeden Fall möchte ich mich dafür bedanken, daß es solche Menschen gibt wie Dich. Ich stoße oft auf Missverständnis. Ich solle doch mit Konsolenprogrammen machen. Vielleicht haben die Leute recht. Ich weiß micht. Nur habe ich schon so viel im Kopf, das muß nur erweitert werden.

    Ich hab Konsolenprogramme gemacht. Klar. Hab auch überall unten angefangen. Nur kann ich besser beim Problemelösen lernen.

    Und dabei hast Du mir geholfen. Auch so kann man einen Zsammenhang verstehen.

    Vielen vielen Dank

    Robert

    Was ist los? Ich werd ja ganz nervös ;). So toll war meine Hilfe nun auch wieder nicht und außerdem hast du dich doch schon einmal um ~23:38 bedankt. (Ist wohl doch noch etwas früh, oder ;)).

    Btw: Mein letzter obiger Post bezog sich auf don_basto.

    Gruß Caipi



  • Hab schon berichtigt. Bin wohl etwas in die Bohnen

    ~23:38:37
    

    Gruß Robert



  • @Caipi:
    Hier mal ein bisschen Kode, nicht getestet aber anolog dem verwendeten:

    #ifndef __GLOBAL_H__
    #define __GLOBAL_H__
    
    namespace test {
    
    	enum testEnum {
    		TEST_NULL = 0,
    
    		TEST_START = 10,
    		TEST_DRAW,
    		TEST_END,
    
    		TEST_ERROR = 20
    	};
    
    	const char* const TEST_FILE = "test.ini";
    
    }
    #endif __GLOBAL_H__
    

    Was ich nicht ganz verstehe:
    Warum sollte es denn mehrfache Definitionen geben, wenn man include-Wächter nutzt?
    Warum ist eine Filescope-Variable nicht global, wenn man die Datei in alle anderen Header mit einbindet?

    Grüsse,
    don_basto



  • Include-Wächter helfen nur zu verhindern, daß du den selben Code mehrfach in eine Objektdatei einbindest (wenn du z.B. drei Header in deiner main.cpp nutzt, die alle den selben "helper.h" einbinden, würden dessen Definitionen dreifach auftauchen). Doppelte globale Variablen machen erst Probleme, wenn du mehrere (unabhängig voneinander compilierte) Objektdateien zu einer EXE linken willst - an der Stelle nützen die Include-Wächter gar nicht.


Anmelden zum Antworten