statische variablen "finden"



  • hallo

    ich habe gerade das Problem dass die statischen klassenvariablen nicht gefunden werden - anschein fuktioniert die sache anders als ich denke, aber ich kann nicht drauf verzichten, da es noch lange vor der "geburt" der Klasse bekannt sein soll ob diese Klasse überhaupt zum einsatz kommt.

    Hier ein Beispiel

    class A
    {
    	public:
    		static void setS( int _s ) { s = _s; };
    	private:
    		static int s;
    };
    
    int main( )
    {
    	A::setS(100);
    
    	return 0;
    }
    

    und es heißt dann:

    g++ defTast.cc
    /tmp/ccI8yOds.o: In function A::setS(int)': defTast.cc:(.text._ZN1A4setSEi[A::setS(int)]+0x7): undefined reference toA::s'
    collect2: ld returned 1 exit status

    Was ist das Problem dabei?

    Danke



  • class A
    {
        public:
            static void setS( int _s ) { s = _s; };
        private:
            static int s;
    };
    
    int A::s;
    
    int main( )
    {
        A::setS(100);
    
        return 0;
    }
    


  • Einfach mal in die FAQ schauen, dort gibts eine Übersicht, die auch den Wortlaut deiner Fehlermeldung "undefined reference" enthält. Der Link bringt dich dann hierhin:
    http://www.c-plusplus.net/forum/246875


Anmelden zum Antworten