Array - Ungültige Speicherklasse
-
Hallo!
Kann mir jemand sagen was ich hier falsch mache? Bekomme immer die Fehlermeldung ungültige Speicherklasse.
Danke!
mfg,
shedx.h:
class X { private: extern const int MYARRAY[]; }x.cpp:
const int MYARRAY[] = {1,2,3};
-
Das 'extern' muss weg, das macht vor einem Member keinen Sinn - so weit ich weiß.
Für das Array muss eine konstante Größe angegeben werden. Ein const macht vor dem array auch keinen Sinn, da man es nicht im Konstruktor in der Initialisierungsliste initialisieren kann.Das 'MYARRAY' im cpp-File hat mit dem Member nichts zu tun.
Das würde funktionieren ...
class X { private: static const int MYARRAY[3]; }; const int X::MYARRAY[] = {1,2,3};falls es das ist, was Du benötigst.
Gruß
Werner
-
Ah danke! Mit static funktioniert das. Aber was ist wenn ich static gar nit verwenden will, oder geht das hier gar nicht anders?
mfg,
shed
-
Sagen wir's so, es macht keinen Sinn die Konstante an eine Instanz zu binden, denn aufgrund ihrer konstanten Natur wär der Inhalt eh in jeder Instanz gleich
