static-Variablen bei Klassenableitung



  • Hi,

    ich möchte in verschiedenen Klassen dieselbe static-Variable haben.
    Stark vereinfacht sieht das so aus:

    // BaseClass.h
    class CBaseClass
    {
    public:
    static int zahl;
    }
    
    // BaseClass.cpp
    int CBaseClass::zahl=1;
    
    // OtherClass.h
    class COtherClass: public CBaseClass
    {
    ...
    }
    

    Irgendwo anders greife ich auf die zahl-Eigenschaft einer COtherClass-Instanz zu.

    Ich kriege aber nen Linker Error ("Nichtaufgelöstes Externes Symbol").

    Wie kann ich das umsetzen, sodass es funktioniert?
    Oder sollte sowas normalerweise schon funktionieren und ich habe irgendeinen anderen Blödsinn gemacht?

    (Anmerkung zum oberen Code: Das ist nur ein Beispiel, normalerweise greife ich nicht direkt auf fremde Variablen zu)

    mfg. Tubos



  • Hast du in deiner Implementierungsdatei zu CBaseClass
    auch die Header eingebunden #include "BaseClass.h"?

    Das gleiche gilt auch für deine andere Header, da die Basisklasse da bekannt sein muss.



  • Natürlich habe ich das.
    Wenn ich die Header-Datei vergessen hätte, dann hätte ich ja keinen Linker- sondern einen Compilerfehler erhalten.



  • Also, wenn ich deine Codeschnipsel verwende, dann funktioniert bei mir alles. Ich kann auch ohne Probleme über eine Instanz von COtherClass auf die zahleigenschaft zugreifen. Entweder du hast einen eigenen Compiler programmiert, der was anderes macht als meiner oder du zeigst noch bisschen Code.



  • Danke!

    Dann habe ich eventuell bei der Ableitung Mist gebaut.

    Ich schau mir nochmal alles an und melde mich, falls es Probleme gibt.

    mfg. Tubos


Anmelden zum Antworten