Fehler trotz definierung



  • Hallo, ich habe 2 header dateien, eine System.hpp und eine Plugins.hpp
    Die System.hpp bindet die Plugins.hpp ein.
    // Gekürtzt da nicht mehr erforderlich
    Die Zeile "Plugins* pluginManager;" erzeugt bei mir aber einen Fehler, den ich mir nicht erklären kann.

    10|Fehler: »Plugins« bezeichnet keinen Typ|
    

    Jemand ne idee woran das liegt ?
    Binde ich die Plugins.hpp in die Main.cpp ein und erstelle in der Main ein Object funktionierd das Prima, kommentiere ich die Zeile aus funktionierd der Rest auch perfekt, nur in der konstelation giebt er mir genau diesen einen Fehler. Der Hacken ist, das ich es bei Logger genauso mache und dort funktionierd es.

    MFG Thalhammer

    // EDIT:
    Hat sich erledigt, es lag daran, das die System.hpp von der App.hpp, die von Plugins.hpp includierd wurde eingebunden wurde und sich System.hpp somit selbst eingebunden hat. Da ich jedoch in der App.hpp auch auf die Klasse SystemController zugreifen musste hatte ich ein problem.
    Der Grund und die Lösung stehen hier:
    http://www.parashift.com/c++-faq-lite/forward-decl.html



  • Mit hoher Wahrscheinlichkeit ist das eine zyklische Abhängigkeit. Kann es sein, dass App.hpp System.hpp einbindet? (oder einer der anderen Header, die du in Plugins.hpp einbindest, möglicherweise auf Umwegen).



  • Ja wie schon geschrieben, war es eine.
    Interresantes Problem, hatte ich bisher noch nie.


Anmelden zum Antworten