Linkertoolfehler LNK2019

05/27/2014 17:39 Obilee#1
Hatte heute ein paar Linking-Errors die ich mittlerweile behoben habe, dennoch verstehe ich nicht ganz die Lösung zu den Problemen.

[Only registered and activated users can see links. Click Here To Register...]

Code:
struct C {
   static int s;
};

// Uncomment the following line to resolve.
// int C::s;

int main() {
   C c;
   C::s = 1;
}
Würde gerne mal aus der Technischen Sicht aus erklärt bekommen warum ich vor meiner Funktion die static extra definieren muss. Aus meiner wunderschönen Java-Welt muss man natürlich nicht so ein crap machen.
05/27/2014 19:23 Tasiro#2
Statische Variablen werden in der Klassendefinition deklariert (aber nicht definiert). Daher existierten sie für den Linker nocht nicht. Wenn du sie dann definierst, bekommten die Variablen eine Adresse (bzw. nur mit einer Definition darf die Adresse berechnet werden).