Klassen( was muss beim konstruktor und was beim destrukor hin?)



  • Hallo alle zusammen!
    Habe mir folgende Klasse gemacht die ein Spielfeld für TicTacToe
    darstellen soll!
    Aber irgenwie funktioniert das nicht richtig!

    Was Muss ich beim Konstruktor und Destruktor auf folgendes Beispiel bezogen
    reinschreiben?

    class Spielfeld
    {
        private:
            char feld[2][2];
            char feld_inhalt;
        public:
            Spielfeld();
            char feld_lesen(int x,int y);
            void feld_schreiben(int x,int y,char inhalt);
            ~Spielfeld();
    };    
    //Classen schnittstellenfunktionen 
    Spielfeld::Spielfeld()
    {
        //WAS muss ich hier jetzt reinschreiben??
    }    
    char Spielfeld::feld_lesen(int x,int y)
    {
        return feld[x][y];
    }
    
    void Spielfeld::feld_schreiben(int x,int y,char inhalt )
    {
        feld[x][y]=inhalt;
    }
    
    Spielfeld::~Spielfeld()
    {
        //Was kommt nun hier hin
    }      
    int main(int argc, char *argv[])
    {
        Spielfeld Sfeld1;
        for (int x=-1;x<2;x++)
        {
            for (int y=-1;y<2;y++)
            {
              Sfeld1.feld_schreiben(x,y,'X');
            }
        }  
        for (int x=-1;x<2;x++)
        {
            for (int y=-1;y<2;y++)
            {
              char zeichen=Sfeld1.feld_lesen(x,y);
              cout <<zeichen;
            }
        }  
    
      getch();
      return 0;
    }
    

    Nunja hoffe jemand hilft mir!!
    Gruß Tobias



  • Hai tobiS,
    'müssen' muss da eigentlich gar nix hin, in deinem Beispiel ist meine ich dass auch gar nicht notwendig. Wenn ein objekt erzeugt wird, wird der konstruktor des Objekts aufgerufen, der das Objekt konstruiert. Du kannst hier verschiedene Dinge erledigen wie Membervariablen initialisieren, unterobjekte erzeugen oder ähnliches. Wenn das bei der Konstruktion erledigt werden soll, muessen diese Anweisungen im Konst. enthalten sein. Ähnliches gilt für den Destruktor, zum Beispiel kann man hier allozierten Speicher freigeben, temporär genutzte Files löschen oder sowas halt.

    Weis nicht was da jetzt nicht funzt bei dir, hast den Fehler leider nicht näher beschrieben. eine Frage hätte ich aber doch:
    Warum lässt du deine 'for'-Schleifen von -1 an laufen? die Array Indizes beginnen doch meiner Meinung nach bei Null und sind immer positiv?
    mfg
    arni



  • Ja schönen Dank erstmal !!!

    Jetzt ist mir das auch klar!! 😋
    Gute Beschreibung danke!

    Also das mit den schleifen war nen Denk fehler! 🙄
    Naja jedenfalls klapts nu! 🤡

    Gruß Tobias


Anmelden zum Antworten