static class member variablen



  • Ich benötige einige Variablen aus einer Basisklasse, die dann an alle abgeleiteten Klassen weitergegeben werden. das sieht folgendermaßen aus: (das hier is nur eine extrem gekürzte version des eiegntlichen programmes, aber es erzeugt den selberen Fehler auf dieselbe Art):

    #include<iostream.h>
    
    class basis
    {
    public:
    	void Seta(int i){a=i;};
    
    	void printa(){cout<<a<<endl;};
    
    	static int a;  //hier sitzt das Problem im "static" keyword
    };
    
    class test : public basis
    {
    	int ahoch3(){return a*a*a;}
    };
    
    void main()
    {
    	test a,b,c;
    
    	a.Seta(10);
    	a.printa();
    
             a.printa();  //hier sollte jetzt "10" ausgegeben werden
    	     b.printa();  //und hier auch
             c.printa();  //und hier auch
    
    }
    

    wie man sieht versuche ich den Wert durch eine static variable weiterzugeben, jedoch kriege ich dann immer Fehlermeldungen durch unaufgelöste externe symbole o.ä. wie kann ich das umgehen?



  • Du musst deine statische Variable noch außerhalb irgendwo definieren, so wie du es mit Methoden der Klasse auch machst.



  • Hallo,
    ein Blick in unsere FAQ hilft:
    http://www.c-plusplus.net/forum/viewtopic.php?t=39471



  • k, danke


Anmelden zum Antworten