Static Variable und Link Error

Hi,

ich habe mir eine Klasse geschrieben. Die Klasse enthält
eine static Variable. Wenn ich die Klasse kompiliere
ist alles OK. Wenn ich aber mein komplettes Projekt
kompiliere, dann bekomme ich einen Linker Error
„Nichtaufgelöstes Externes Symbol“. Wie kann ich das
wegbekommen? Ich verwende VC++ 6.0

mfg
Torsten

Hallo!

Statische Member-Variablen müssen im Unterschied zu dynamischen nicht nur deklariert (normalerweise im .h-File) sondern auch definiert werden (normalerweise im .cc- oder .cpp-File). Sonst kann der Variablenname eben nicht aufgelöst werden.

z.B.:

.h-File:

class CMyClass {
 static int nTest;
 ...
}

.cc- oder .cpp-File:

int CMyClass::nTest=0; // Statische Variable definieren und eventuell initialisieren

Grüße Safog

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo!

Statische Member-Variablen müssen im Unterschied zu
dynamischen nicht nur deklariert (normalerweise im .h-File)
sondern auch definiert werden (normalerweise im .cc- oder
.cpp-File). Sonst kann der Variablenname eben nicht aufgelöst
werden.

z.B.:

.h-File:

class CMyClass {
static int nTest;

}

.cc- oder .cpp-File:

int CMyClass::nTest=0; // Statische Variable definieren und
eventuell initialisieren

Grüße Safog

Hi,

ja das ist mir schon klar, dass ich static Variablen auch definieren muß. Nur bekomme ich in Programmen mir mehreren
Dateien einen Link error, der besagt „public: static int Knoten::test“ (?test@Knoten@@2HA) bereits in GL_1.obj definiert"

Torsten