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


Anmelden zum Antworten