Seltsames Variablennamenprobelm



  • Ich hab ein etwas selsames Problem mit Code::Blocks C++:
    Ich hab di eKLasse Player mit den Attributen dir und gundir.

    Wenn ich dir verwende ist es ausserhalb der Klasse immer null.
    Es sei denn ich benenne gundir um, dann gehts wieder normal.

    Was ist da los? ist das normal?



  • alterbro schrieb:

    Was ist da los? ist das normal?

    Normal wohl nicht, aber mit der Informationsmenge die du hier angibst wird dir auch niemand sagen können ob es ein Compilerfehler ist. Vielleicht machst du auch einfach irgendwas im Code falsch etc. (wovon ich sogar eher ausgehe).



  • alterbro schrieb:

    Was ist da los? ist das normal?

    keine Ahnung - Glaskugel defekt. Kann sein.

    Tipp: wahrscheinlich willst du uns ein minimales kompilierbares Codebeispiel zeigen, das dein Problem verdeutlicht und konkrete Fragen stellen - evtl. mit Angabe der Zeilennummer.



  • okay, dass ist meine Klasse:

    #ifndef PLAYER_H
    #define PLAYER_H
    #include "entity.h"
    #include "../../../drstd.h"
    
    class player : public entity
    {
        public:
            static player*rider;
    
            int lean;
            int bikedir;
    
            vector gundir;
    
            int speed;
            player();
            virtual ~player();
            cube getcube();
            virtual void handle();
            virtual void handlerender();
        protected:
        private:
    };
    
    #endif // PLAYER_H
    

    und das der aufruf:

    camera::ang.y=player::rider->bikedir*-1;
        printf("%i\n",player::rider->bikedir);
    

    ich kann keinen Fehler entdecken



  • alterbro schrieb:

    ich kann keinen Fehler entdecken

    Ich auch nicht, liegt aber daran, dass du uns kein minimales kompilierbares Beispiel geliefert hast (siehe Link in meiner Signatur).
    Das Attribut dir, von dem du behauptet hast, es wäre in der Klasse vorhanden, gibts auch nicht.



  • alterbro schrieb:

    okay, dass ist meine Klasse:

    Das ist kein compilierbares Minimalbeispiel.

    Wobei mir hier schon einiges nicht gefällt:
    - wenig aussagekräftige Variablenbenennung.
    - "using namespace" gehört niemals in einen Header (und "vector" reicht ohne using namespace nicht aus).
    - Membervariablen öffentlich (gerade wenn es sich nicht um eine reine Datenklasse handelt)
    ...



  • asc schrieb:

    alterbro schrieb:

    okay, dass ist meine Klasse:

    Das ist kein compilierbares Minimalbeispiel.

    Wobei mir hier schon einiges nicht gefällt:
    - wenig aussagekräftige Variablenbenennung.
    - "using namespace" gehört niemals in einen Header (und "vector" reicht ohne using namespace nicht aus).
    - Membervariablen öffentlich (gerade wenn es sich nicht um eine reine Datenklasse handelt)
    ...

    Ok, wird erledigt.

    Und es hat sich erledigt, ich hab das File verschoben und das alte nicht richtig gelöscht, sorry, hätte länger nachdenken müssen.
    Ich werd mich mal bei meinem Code::Blocks entschuldigen



  • asc schrieb:

    und "vector" reicht ohne using namespace nicht aus

    Ich glaube der syntaktisch dramatischere Fehler ist der fehlende Template-Parameter.

    alterbro schrieb:

    Ich werd mich mal bei meinem Code::Blocks entschuldigen

    👍


Anmelden zum Antworten