Wie kann ich statischen Klassenvariablen innerhalb der Klasse Werte zuweisen?
Ich habe folgendes probiert:
C++:
#include <stdio.h>
class Klasse { public: staticvoid main() { z = 7; //... }
//...
private: staticint z; };
int main() { Klasse::main(); getchar(); }
Nach dem erfolgreichen compilieren kommt eine Fehlermeldung im "Compiler and linker output" bei Dev-C++ 4
Code:
C:\WINDOWS\TEMP\ccZc87fb.o(.text$main__6Klasse+0x8):game_max.cpp: undefined reference to `Klasse::z'
Ich werde aus dieser Fehlermeldung nicht schlau. Wieso undefinierte Referenz? -- Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten. (Emerson Pugh Trost)
Es erscheint mir irgendwie sinnlos, dass sie nicht schon mit der Deklaration der Klasse instanziiert wird.
Das bringt mich jedoch weiter. Danke. -- Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten. (Emerson Pugh Trost)
Das ist mitnichten sinnlos. Normalerweise befinden sich Klassendeklarationen in Header-Dateien, und die werden u.U. in mehreren Modulen includet. Wenn du in jedem Modul ne eigene Instanz der Variable hättest, wüsste der Linker nachher nicht, welche er benutzen soll. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra