Schleife in einer Funktion



  • Hallo liebe Forumler,

    Gleich zu meiner Frage. Ich möchte eine Funktion schreiben in der eine Schleife ist. In dieser Schleife soll dann eine beliebige Funktion aufgerufen werden können.

    In etwa so:

    void LoopFunc(...)
    {
        int i = 0;
        for(i;i<200;i++){
                //Funktionsaufruf möglich?
        }
    }
    

    Innerhalb der Schleife möchte ich also jede beliebige Funktion aufrufen können. Der LoopFunc() funktion möchte ich dann quasi den Funktionsnamen übergeben und dieser wird dann in der Schleife aufgerufen.

    Ist das überhaupt möglich? Und falls ja, wie? Oder gibt es alternativen?

    Vielen Dank im Voraus
    Gruss
    Katachi



  • Am einfachsten ist es mit einem Template:

    #include <iostream>
    
    template <typename T>
    void Loop(T & func)
    {
     for(int i = 0; i != 200; ++i)
      func();
    }
    
    void moep()
    {
     std::cout << "moep" << std::endl;
    }
    
    int main()
    {
     Loop(moep);
    }
    

    Ansonsten musst du als Parameter die Art der Funktionen übergeben. In diesem Beispiel:

    void Loop( void (*func)() )
    

    Aussführliche Infos unter:
    http://www.function-pointer.org/



  • Ich würd sagen Funktionszeiger
    www.function-pointer.org
    //EDIT: Zu Spät Mist 😉



  • Hallo ihr beiden,

    super! Vielen Dank für eure Antworten. 👍

    Gruss
    Katachi


Anmelden zum Antworten