Funktion aus "parallem" Objekt aufrufen oder: Compiler zwingen, eine Memberfunktion aufzurufen



  • hallo,

    hab ein Saudummes problem:
    mehrere Klassen, wobei alle von einer abgeleitet sind

    mother
       /        |         \
    child_1    child_2  ...   child_Problem
    

    child_Problem: erwartet bei der Erzeugung einen Zeiger auf "mother".

    child_x erzeugt nun ein Objekt vom Typ "child_Problem" und übergibt einen Zeiger
    auf sich selbst (ja, auch Kinder können Mütter sein ;-), wodurch child_Problem
    auf child_x zugreifen kann.

    Problem:
    child_x erweitert mother um eine Funktion foo_x();

    Wie ruf ich diese Funktion jetzt von child_Problem aus auf?

    logischerweise meckert der Compiler,
    da child_Problem ja nur einen Zeiger auf "mother", nicht aber auf "child_x" hat
    und somit foo_x() nicht bekannt ist.

    Ein typecast wäre vermutlich die allereinfachste Lösung,
    nur hat mal ein child_x ein child_Problem-Objekt, mal ein child_y ein child_Problem-Objekt.

    Somit fällt der cast flach.

    Zusammenfassung:
    wie zwinge ich den Compiler, dass er mir blind vertraut und foo_x() einfach
    aufruft, auch wenn er dabei Bauchweh kriegt?

    Thx
    Martin



  • - Bösen Cast machen wenn du genau weißt was du hast?
    - Sag ihm über ein Template was sein Mutter-Typ ist

    MfG SideWinder



  • SideWinder schrieb:

    - Bösen Cast machen wenn du genau weißt was du hast?
    - Sag ihm über ein Template was sein Mutter-Typ ist

    Stümmt...

    templates hören sich gut an 🙂

    Danke


Anmelden zum Antworten