2 dimensionales Array in Klasse

sawamin

Grünschnabel
Habe Problem ein 2-dimensionales Array in einer Klasse zu erstellen. In der main funktionierts aber ohne Probleme
Code:
// cTicTacToe.h
    #ifndef cTicTacToe_h
    #define cTictacToe_h
    
    class cTicTacToe {
    
    private:
    	char Spielfeld[3][4]={"...", "...", "..."};
    
    	void Eingabe();
    	void Ausgabe();
    	void ErmittlungSieger();
    	void ComputerStrategie();
    
    public:
    	cTicTacToe();
    	~cTicTacToe();
    	
    	void playOneGame();
    
    
    };
    #endif

Kann mir jemand sagen warum?
 
Das Problem ist diese Zeile:
Code:
  char Spielfeld[3][4]={"...", "...", "..."};
Anders als bei Java (?) und C# kannst du bei C++ eine Variable nicht bereits innerhalb der Deklaration initialisieren. Das musst du z.B. im Konstruktor machen.

Übrigens: Wegen der zwei Dimensionen wäre hier auch eine std::vector nicht so super, obwohl immer noch besser als ein C-Array. Für mehrdimensionale Array bzw. Vektoren empfehle ich boost::multi_array, enthalten in der Boost-Lib, zu beziehen bei http://www.boost.org.
 
Zuletzt bearbeitet:
echt coole Seite! werde ich mir merken!

Ich denke der Hinweis mit der Vektorklasse ist für meine Zwecke besser geeignet, da ich mich auf eine Klausur vorbereite und mir da nur die Standard Libraries zur Verfügung stehen!

ansonsten nochmal Danke für die schnelle Antwort
 
Daniel Toplak hat gesagt.:
Warum, man kann doch einen std::vector in einen std::vector packen. Das geht ohne weiteres.

Daniel
Klar kann man das machen. Habe ich selber auch schon oft. Aber das hat mir bei einem Projekt so viel unangenehmen Overhead verursacht, dass ich es nicht mehr machen wollte. Deshalb empfehle ich lieber gleich Boost. Damit sollte sich sowieso alle C++-Programmierer vertraut machen, oder zumindest diejenigen, die keine Template-Allergie haben, da Boost wirklich unglaubliche Klassen und Klassentemplates anbietet. Ein weiterer absoluter Favorit von mir ist boost::any.

@ sawamin:
Ich denke der Hinweis mit der Vektorklasse ist für meine Zwecke besser geeignet, da ich mich auf eine Klausur vorbereite und mir da nur die Standard Libraries zur Verfügung stehen!
Klar, du fährst mit dem verschachtelten std::vector schon ganz gut, wie Daniel bereits vorgeschlagen hat.
 
Zurück