static
-
Ich habe eine komplett statische Klasse erstellt (statische Member-Variablen und Methoden). Zugegeben, ich könnte prinzipiell auch globale Variablen nehmen, aber ich will ein bisschen mehr "Ordnung" schaffen.
Und so sieht das im prinzipiell aus:
class Statisch { private: static int stat; public: static void f() { stat = 0; } }; void main() { Statisch::f(); }
... und das produziert bei meinem Visual C++ 6.0 leider den Fehler:
Error LNK2001: unresolved external symbol "private: static int Statisch::stat" (?stat@Statisch@@0HA)
fatal error LNK1120: 1 unresolved externals
Weiß jemand, wo der Fehler liegt??
Danke!!!
[ Dieser Beitrag wurde am 28.09.2002 um 21:00 Uhr von Andi editiert. ]
-
Die Variable muß außerhalb der Klasse initialisiert werden. Füge folgende Zeile in dein Programm ein:
int Statisch::stat = 0;
Anm: Dieser Tip basiert auf Vermutungen :p
-
nein, nein, du hast schon Recht, statische Variablen müssen 1x außerhalb von jeder Klasse initialisiert werden, um den Speicherplatz anzulegen.
-
allerdings reicht auch
int statisch::stat;
-
Super, danke!! Wusste ich gar nicht, dass man statische Variablen auch noch initialisieren muss -- auch kein Service