Klasse mit Array produziert Fehler
-
Guten Abend,
Beim Programmieren heute bin ich auf folgendes Problem gestoßen, auf das ich keinerlei Antwort bisher fand:Wenn ich eine Klasse erstelle, und in ihr ein mehrdimensionales Array, dem ich gleich Werte zuweise,
class abc{ public: short a[2][3]={1,2,3,4,5,6}; }; int main() {}So bekomme ich 2 Compilerfehler:
error C2059: Syntaxfehler : '{'
error C2334: Unerwartete(s) Token vor '{'; sichtbarer Funktionsrumpf wird übersprungenWenn ich dieses Array global definiere, also außerhalb der Klasse, so geht es problemlos:
short a[2][3]={1,2,3,4,5,6}; class abc{ public: }; int main() {}Ich weiß ehrlichgesagt nicht weiter, zumal weder die Boardsuche noch Google mir etwas Verwertbares ausgibt.
Ich verwende MSVC++ 6.0 Autoren Edition und Windows XP.
-
Hallo
Du kannst keine Member eine Klasse in der Deklaration gleich initialisieren. Du kannst sie deklarieren und im Konstruktor initialisieren, was natürlich bei deinem Array zum Verlust der schönen Initialisierungsmöglichkeit führt.
Wenn aber das Array für alle Instanzen der Klasse das gleiche sein soll dann mach es statisch. Dann kannst du es auch normal initialisierenclass abc{ public: static short a[2][3]; }; short abc::a[2][3]={1,2,3,4,5,6}; int main() {}bis bald
akari
-
Perfekt, genau so etwas hatte ich gesucht.
Vielen Dank
Klaus