Dynamic unspecified function call



  • Hallo,
    ich habe eine Variable vom Typ int, die abhängig vom Wert eine andere Funktion aufruft. Da es jedoch 20 verschiedene Funktionen sind und die Anzahl auch wächst (flexibler Code), suche ich eine andere Möglichkeit als über 20+ switch-cases die Funktion aufzurufen oder einem Funktionspointer die entsprechende Funktion zuzuweisen.
    Ist es möglich, z.B. über Funktion0, Funktion1, ... immer beim entsprechenden Wert die Funktion aufzurufen?
    Ich hatte sonst die Idee, ein globales Array zu verwenden, in dem die Pointer über entsprechenden Index aufrufbar sind.
    Gibt es aber vllt. besseres?



  • Hallo,

    so wie Du die Frage stellst, scheint eine Lösung tatsächlich eine Array mit Funktionspointern zu sein, oder wenn die Indizes nicht hintereinander liegen eine std::map mit int als key und einem Funktionspointer als Value. Das Ganze muss nicht global sein.

    Aber vielleicht bist Du bei Deiner Frage schon zu sehr von Deiner eigenen Lösungsidee ausgegannen. Beschreib mal, warum Du meinst sowas zu brauchen.

    DJohn



  • Mich stört das "unspecified" an der Frage. Ein Array oder Map (aber nicht global) mit Funktionszeigern wär eine ganz gute Idee, solang die Funktionen die gleiche Signatur haben. Sonst wirds kompliziert...


Anmelden zum Antworten