Variable in mehreren Klassen nutzen



  • Hi,

    ich versuche gerade ein kleines Spiel zu programmieren. In diesem Spiel habe ich 3 Dateien mit jeweils einer Klasse:
    "Spieler.hpp" mit der Klasse "Spieler"
    "Computer.hpp" mit der Klasse "Computer"
    und "Spiel.hpp" mit der Klasse "Spiel"

    mein Problem ist nun das ich auf eine Variable "Anzahl_Muenzen" in allen 3 Klassen zugreifen muss so das ich ihren Wert verändern kann. Weiß jemand wie ich das am besten mache?



  • Dazu definierst du dir einen vierten Header (und ein dazu passendes CPP-File):

    //defs.h
    #ifndef DEFS_H
    #define DEFS_H
    extern int Anzahl_Muenzen;
    //eventuell weitere Hilfsdefinitionen
    #endif //DEFS_H
    
    //defs.cpp
    int Anzahl_Muenzen=0;
    //weitere Hilfsvariablen und Funktionen
    

    Als nächstes kannst du am Anfang der Quellfiles deiner Klassen diese Definitionen einbinden:

    //z.B. Spieler.cpp
    #include "defs.h"
    #include "Spieler.hpp"
    
    //Definition der Spieler-Methoden
    

    (und schließlich darfst du nicht vergessen, die "defs.cpp" mitzucompilieren und zu linken, wenn du dein Gesamtprogramm auf die Beine stellst)



  • eine weitere Möglichkeit

    class Spiel
    {
      ...
      public:
        int m_iAnzahlMuenzen;
      ...
    };
    
    class Spieler
    {
      ...
      Spiel *m_pSpiel;
      ...
    };
    
    class Computer
    {
      ...
      Spiel *m_pSpiel;
      ...
    };
    

    Somit jeder Spieler und jeder Computer auf das Spiel und damit auf benötigte Eigenschaften zugreifen.



  • Vielen dank für die Antworten. Ich werde es gleich mal versuchen.

    Edit: Es hat geklappt, danke nochmal.


Anmelden zum Antworten