Array Initialisierung in Klasse (static + const)
-
Warum lässt sich folgendes nicht übersetzen, bzw. wie muss es richtig lauten?
... private: static const char forbiddenCahrs[] = {'\\', '/', '#'}; ...Ich verstehe nicht, warum soetwas nicht möglich sein soll...
gruss geralyn
-
Hallo
du darfst die Initialisierung nicht bei der Klassen-Definition machen
class Test { ... static const char forbiddenCahrs[]; ... }; ... // In der Implementation const char Test::forbiddenCahrs[] = {'\\', '/', '#'};bis bald
akari
-
hmmm... das ist aber unschön.
So ein Array ist nunmal static und es wäre schön ihn in die klassendefinition zu schreiben. So kann das initialisieren nicht vergessen werden.nun gut, dann werde ich das jetzt im Konstruktor machen und hoffen, dass niemand bevor das erste Objekt initialisiert wurde auf
Test::forbiddenCahrszugreift.
-
Hallo
So kann das initialisieren nicht vergessen werden.
Das initialisieren kann nicht vergessen werden, da der Compiler ansonsten wegen Unresolved external meckert.
nun gut, dann werde ich das jetzt im Konstruktor machen
Die Initialiserung soll auch nicht in den Konstruktor, sondern 'einfach so' in die Implementaion. Dann muß auch keine Instanz von test erstellt werden. Sondern forbiddenChars ist sofort verfügbar. Was auch der Sinn von static ist.
bis bald
akari
-
Gut, so ist's besser...
