gegenseitiges aufrufen von Klassen
-
Hallo,
um nicht etwas vielleicht zu kompliziert zu beschreiben hier mal die Ausgangssituation. Jede Klasse hat eine eigene .hpp und .cpp Datei. Vereinfacht geschrieben:class Menu { }class Window { Menu BoxA BoxB }class BoxA { Menu }class BoxB { Menu }Nun muss natürlich Klasse Menu auf bestimmte Ereignisse reagieren und es den Klassen Window oder Box mitteilen. Mein Ansatzpunkt war der Klasse Menu jeweils einen Zeiger auf die anderen Klassen zu übergeben um die entsprechende Methode in der jeweiligen Klasse aufrufen zu können. Wieder vereinfacht:
class Menu { Window* BoxA* BoxB* }Dadurch muss ich natürlich dann aber jede dieser Klassen und alle weiteren Box-Klassen vorwärtsdeklarieren und sie kann als Element jeweils nur als Zeiger definieren.
Bisher habe ich nichts dazu finden können, vielleicht denke ich ja auch in die falsche Richtung. Deshalb hier meine Frage, gibt es eine andere oder bessere Herangehensweise, Ansatz, Lösung für dieses Problem?
-
Wie wäre es mit einer übergeordneten Instanz, zum Beispiel einer Klasse windowmanager? Oder einer Kommunikationsklasse?
-
In die Richtung hatte ich auch schon überlegt, da komme ich auch nicht so richtig weiter. Bei mir kommt es immer aufs selbe raus, nur mit einer weiteren Klasse dazwischen.
-
Also eine gewisse solche Zyklik wirst du wahrscheinlich schon haben, aber wenn du weisst, wie man damit umgeht, dann ist das aber auch kein Problem.
Sieh dir mal dazu diesen Beitrag an:
http://www.drakon.ch/?id=&offset=2&mobile=0&show_entry=77
-
Das ist doch das was ich jetzt habe.
-
Ja. Nun sehe ich das Problem nicht ganz.
Du kannst die Elemente ja auch z.B von einer Basisklasse erben lassen und in Window eine Liste von denen halten oder so.
Was genau willst du denn nicht haben oder anderst machen? So etwas, wie du da machst ist eigentlich normal und nicht unüblich.