voneinander abhängige klassen - problem mit forward declaration



  • hi ihr da draußen...

    ich hab ein etwas umfangreicheres projekt (für meine begriffe) und jahrelang nicht mehr mit C++ gearbeitet, und natürlich einige probleme.

    ich hab eine klasse "Scene", mit elementen vom typ "FOLObject". Scene includiert also "FOLObject.h"

    jedes FOLObject selber soll aber eine referenz zurück auf die Scene haben, um daten von da abzufragen, dafür hat FOLObject einen zeiger auf Scene.

    in der FOLObject.h habe ich also Scene.h nicht includiert, weil diese ja schon FOLObject.h selber includiert.

    stattdessen - ich musste ganz fest nachdenken um mich daran zu erinnern 😉 - hab ich eine forwärtsdeklaration verwendet - in der FOLObject.h steht also nur ein

    class Scene;

    und gut war. erstmal. jetzt habe ich die klasse "Agent" abgeleitet von FOLObject, und will da von einer methode eine methode von Scene aufrufen - mit dem resultat dass der compiler nun meint

    Agent.cpp : Fehler: invalid use of incomplete type "struct Scene"
    FOLObject.h : Fehler: forward declaration of "struct Scene"

    und irgendwie verließen mich dann die guten geister und ich habe keine ahnung wie ich da wieder rauskomme... kann mir vielleicht irgendwer helfen?

    danke 🙂

    Benjamin



  • Hallo,

    Wenn du die Klasse Scene verwenden willst muss sie auch vollständig bekannt sein. Inkludiere in Agent.cpp einfach Scene.h



  • autsch.... ich versuche gerade das ganze ausmaß meiner unwissenheit zu begreifen 😉

    da hätt ich auch selbst drauf kommen können.... eigentlich

    danke 🙂


Anmelden zum Antworten