Referenz zum Caller erzeugen?
-
Liebes Forum,
mir stellt sich gerade ein merkwürdiges Problem.
Ich habe 2 Klassen und 2 dazugehörige Header. Klasse 1 hat in seinem Header den Header von Klasse 2 inkludiert, damit ich innerhalb Klasse 1 die Klasse 2 nutzen kann. Nun will ich allerdings der Klasse 2 einen Zeiger auf die aufrufende Klasse 1 übergeben und in ihr speichern. Das Problem welches ich habe:
Wenn ich in Klasse 2 den Header von Klasse 1 inkludiere kommt es anscheinend zu irgendeiner Race Condition und Klasse 1 meldet den Fehler das Klasse 2 nicht existieren würde. Ich sobald ich den Header aus Klasse 2 wieder entferne kompiliert der Code einwandfrei. Wie kann ich aber beide Klassen jeweils in beiden Headern verfügbar machen?
Vielen Dank im Voraus,
soulzter
-
Als erstes solltest du überprüfen, ob das Design stimmt. Solche direkten zirkulkären Abhängigkeiten sind meistens falsch. Wenn du es aber wirklich so haben willst, brauchst du eine "forward declaration".
-
dem kann ich nicht zustimmen, daddy_felix. falsch ist es nie, höchstens nicht schön oder unsauber. aber es gibt einige fälle wo man gegenseitige abhängigkeit braucht
aber wie du schon sagtest, die lösung sind forward declarations