Funktionen zusammenfassen,verändern



  • Also,
    ich hab in c++ mehrere Funktionen (hoch,runter,auf,ab).
    Diese Funktionen unterscheiden sich lediglich durch eine einzige Zeile und sind sonst identisch.
    Gibt es in c++ eine Möglichkeit diese 4 Funktionen irgendwie zusammenzufassen bzw zum jeweiligen Zweck zu verändern damit ich am Ende nur noch eine Funktion habe.

    Hoffe ihr habt mich verstanden, ist irgendwie schwer zu formulieren. 🙂



  • zeig am besten mal den source-glaub nicht das ich der einzige bin der nicht richtig weis was du meinst



  • kannst ja so machen, dass du die funktion immer aufrufst, wenn du eine dieser aktionen ausführen willst und übergibst noch ein parameter. dann machst du anhand dieses parameters ein switch
    pseudocode:

    void funktion(int parameter)
    {
    //hier kommt der gemeinsame code
    
    switch (parameter)
    {
    case 1: hoch;break
    case 2: runter;break
    case 3: auf;break
    case 4: ab;
    }
    }
    

    .MamboKurt



  • Jo,is zwar nicht unbedingt optimal,werd aber dann wohl so machen.
    Danke



  • Eine weitere Möglichkeit wäre die vier Funktionen zu belassen, den gemeinsamen Code in eine Funktion zu schreiben und diese dann in hoch runter auf ab aufrufen....



  • auf deine frage gibt es mindestens 17 gute antworten, je nachdem welche frage es genau ist. und dazu müßten wir den code sehen. so ein switch macht den code langsamer und ist mit größter wahrscheinlichkeit eine schlechte lösung. ich hab die lösung mit switch auch nicht bei den 17 guten mitgezählt.



  • schreibe alle 4 unterschiede in 4 Inlinefunktionen, und
    leg dir in der eigentlichen Funktion ein array aus 4 Funktionspointern
    an, und über gib der Funktion jeweils einen wert, wohin
    es gehen soll.

    Devil



  • funktionspointer auf inlinefunktionen? komm, nimm die performance des programms und hüpf mit den füßen drauf herum. dann schon lieber switch.



  • volkard schrieb:

    funktionspointer auf inlinefunktionen? komm, nimm die performance des programms und hüpf mit den füßen drauf herum. dann schon lieber switch.

    Wer ironie findet 😉
    Ohne Inline selbstverständlich. *g*

    Devil


Log in to reply