Zugriff von Kindklasse auf Mutterklasse



  • Ich habe ein Grundsatzproblem.

    Ich habe eine Klasse A, die einen Pointer auf eine Klasse B anlegt (und eine Klasse B newt). Die Klasse B soll nun auf Datenelemente der Klasse A zugreifen. Dafür möchte ich der Klasse B im Konstruktor einen Pointer auf A mit übergeben. Nun das Problem:

    Im Header von A muss ich Header B inkludieren, da hier ja die Klasse B bekannt sein muss. Da ich in B aber den Pointer auf A brauche, muss ich hier den Header auf A inkludieren. Und so beisst sich die Katze in den Schwanz...ich bekomme es nicht kompiliert, da es immer auf eine Stelle läuft, wo erst das andere bekannt sein muss.

    Wie löst man sowas?

    Jörn


  • Mod

    Wie löst man sowas?

    Mit einer Vorwärtsdeklaration:

    class B;
    
    class A{
     B  *b;
    };
    
    class B{
     A *a;
    };
    


  • SeppJ schrieb:

    Mit einer Vorwärtsdeklaration:

    Gibts denn auch eine Rückwärtsdeklaration?
    Ich finde diese Übersetzung irgendwie daneben, da "vorwärts" in dem Fall nicht passt. Vorab wäre in meinen Augen die treffendere Übersetzung.


Anmelden zum Antworten