Problem mit Abhängigkeit zweier Klassen
-
Schönen guten Abend.
Generell sollte man ja vermeiden, bei dem Klassendesign Klassen zu entwickeln, die sich gegenseitig voraussetzen. Allerdings fehlt mir der passende Lösungsweg für meine momentane Problematik:
Klasse 'CLizzy' hat eine Instanz von 'CMsgHandler'. Nun muss diese Instanz immer wissen, zu welcher 'CLizzy'-Instanz sie gehört, denn sie braucht den Zugriff auf einige andere Member-Variablen und -Funktionen.
Mir sind jetzt prompt zwei Lösungsmöglichkeiten eingefallen:
1. Ich nutze im Codeteil von 'CMsgHandler' ein 'extern CLizzy <<Name der Instanz>>'. Daran gefällt mir nicht, dass es die Sache extrem statisch und unschön machen würde.
2. Ich setze einen Prototyp für 'CLizzy' über die 'CMsgHandler'-Definition und verwende eine Member-Variable in 'CMsgHandler' als Pointer, der letztendlich auf die zugehörige 'CLizzy'-Instanz zeigt.Hat da jemand ein paar hilfreiche Tipps? Möchte schließlich von Beginn an darauf achten, dass das Klassendesign so entwirrt wie möglich bleibt.
Stefan
-
Stichwort: Forward-Deklaration:
class CLizzy; class CMsgHandler { public: CMsgHandler(CLizzy* liz) : m_owner(liz) {} ... private: CLizzy* m_owner; }; class CLizzy { public: CLizzy() : m_hnd(this) {} ... private: CMsgHandler m_hnd; };
-
Dankeschön für die Hilfe, scheint mir ganz sinnig.
