Deklaration und Definition globaler Variablen



  • Hi!

    Ich habe eine Klasse bestehend aus einer Header- und einer Implementationsdatei geschrieben. In der Header Datei habe ich einige globale Variablen deklariert, die ich in der Implementationsdatei definiert habe. Das sieht ungefähr folgendermaßen aus:

    // HeaderDatei.h
    class example
    {
        //...
    };
    
    // global
    extern example var1, var2;
    
    // cpp-Datei
    #include "HeaderDatei.h"
    
    example var1(...), var2(...);
    

    Jetzt möchte ich in einer weiteren Implementationsdatei auf diese Klasse bzw. die globalen Variablen zugreifen.

    #include "HeaderDatei.h"
    
    //...
    {
        var1.methode();
    }
    

    Versuche ich das zu kompilieren erklärt mir der Compiler, dass "var1" nichtdeklarierter Bezeichner sei und außerdem der linke Teil von ".methode" eine Klasse sein müsse.

    Wo liegt hier der Fehler? Habe ich noch was vergessen?

    P.S.: ...und bitte jetzt keine Hinweise, dass man es möglichst vermeiden sollte, globale Variablen zu verwenden 🙂



  • Sehe keinen Grund warum das nicht funktionieren sollte.
    könntest es mal so versuchen :

    #include "HeaderDatei.h"
    
    //...
    {
        example * pvar = & var1;
        pvar->methode();
    }
    

    Vielleicht wird die Fehlermeldung dann klarer.
    Kurt



  • Nachdem du mich bestätigt hast, dass die Vorgehensweise korrekt ist, habe ich mir nochmal meine include-Anweisungen angeschaut. Hatte einen Fehler in der Reihenfolge, jetzt funktioniert alles.

    Danke jedenfalls!


Anmelden zum Antworten