Hallo Liste, wahrscheinlich stehe ich auf dem Schlauch, denn der Compiler hat meistens recht, aber hier verstehe ich ihn nicht: class nanu { public: void nop(); // Diese Zeile funktioniert void noo(){geht_nicht = 7;}; private: static int geht_nicht; }; main(int argc, char **argv) { nanu nix; nix.nop(); } void nanu::nop() { // Diese beiden Zeilen funktionieren nicht geht_nicht = 7; nanu::geht_nicht = 7; } In der Funktion nop() bringt der Compiler die Meldung "undefined reference to nanu::geht_nicht". Die Inline-Funktion dagegen akzeptiert er. Weiß jemand warum, oder wo hier was fehlt? Gruß, Wolfgang
Hallo
wahrscheinlich stehe ich auf dem Schlauch, denn der Compiler hat meistens recht, aber hier verstehe ich ihn nicht:
class nanu { public: void nop(); // Diese Zeile funktioniert void noo(){geht_nicht = 7;};
private: static int geht_nicht; };
Jede statische variable musst du nicht nur deklarieren, sondern auch implementieren: In deinem Beispiel fehlt: nanu::geht_nicht = 0; Als implementation der statischen variable. Gruss Tobias
participants (2)
-
Tobias Erbsland
-
Wolfgang Hinsch