2 Headerdateien brauchen sich gegenseitig



  • Hallo,

    ich habe ein Problem mit dem Einbinden von Headerdateien und zwar hab ich 2 Headerdateien, die sich gegenseitig benötigen:

    class Observer {
    public:
    virtual ~Observer();
    virtual void Update (Subject* theChangedSubject) = 0;   // die Klasse Observer benötigt die Klasse Subject
    protected:
    Observer();
    }
    
    class Subject {
    public:
    virtual ~Subject();
    virtual void Attach(Observer*);
    virtual
     void Detach(Observer*); // die Klasse Subject benötigt die Klasse Observer
    virtual void Notify();
    protected:
    Subject();
    private:
    List<Observer*> *_observers;
    };
    
    ich bekomme folgende Fehlermeldung:
    
    [code]
     Syntaxfehler: Bezeichner 'Observer'
    usw
    

    Meine Vermutung ist jetzt, dass eine HeaderDatei noch nicht erzeugt wurde und daher die andere Headerdatei nicht verwenden kann,
    Wie kann ich dieses Problem lösen? Gibts da sowas wie eine vorwärtsdeklaration?

    Vielen Dank für Eure Antworten,

    lg



  • Ah hab schon
    Man muss einfach class Subject in die eine Klasse schreiben.
    Ist das eine gängige Methode?

    lg



  • Forward Declaration


Anmelden zum Antworten