Vorwärtsdeklaration bei sich gegenseitig benutzenden Klassen



  • Hallo,

    ich habe folgende Struktur:

    struct Bar {
        void bar()
        {
            Foo x;
        }
    };
    
    struct Foo : public Bar {
    };
    

    'Bar' braucht leider wirklich 'Foo', ein Zeiger reicht nicht aus. Per Vorwärtsdeklaration läuft dieser Code auch nicht, egal, in welcher Reihenfolge ich es versuche.

    Frage: Geht das überhaupt?

    (Es kommt noch hinzu, dass das ganze generisch ist, d.h. 'Bar' hat den Typenparameter 'T' und 'Foo' erbt von 'Bar<Foo>'.)



  • Bar benötigt Foo nicht, nur bar (die Methode) tut das. Implementier sie einfach nach der struct Foo Definition und gut ist.



  • .filmor schrieb:

    Bar benötigt Foo nicht, nur bar (die Methode) tut das. Implementier sie einfach nach der struct Foo Definition und gut ist.

    Logisch, Danke. Ich arbeite zuviel mit Inlinedefinitionen, da vergisst man sowas anscheinend.


Anmelden zum Antworten