Rückgabe Zweier Werte bei Call by Value?



  • Hallo liebes Forum 🙂

    ich habe folgende Aufgabe gestellt bekommen:

    "Parameter bei Funktionen
    Schreiben Sie drei Funktionen in denen die Parameter unterschiedlich übergeben werden:
    • Call-by-Value
    • Pointer
    • Referenz
    Die Funktionen sollen je zwei Parameter besitzen (Datentyp egal, z.B. ein int und ein float). Innerhalb der Funktionen sollen nun die Werte der beiden übergebenen Variablen verändert werden (z.B. je plus 42). In der (natürlich) auch notwendigen main-Funktion sollen die Funktionen nacheinander aufgerufen werden (mit irgendwelchen Werten). Anschließend sollen ebenfalls in der main-Funktion die Werte der VERÄNDERTEN Variablen ausgegeben werden. Insbesondere darf NUR in der main-Funktion der cout-Befehl benutzt werden. Wichtig ist es also, den richtigen Rückgabedatentyp für die drei Funktionen zu finden, so dass ihre Veränderungen auch in der main-Funktion sichtbar sind."

    Macht ja alles Sinn, außer das es sehr kompliziert beschrieben ist 🙂

    Bei Pointer und Referenz, habe ich schon eine Vorstellung wie es funktionieren soll, dass schaffe ich alleine (denke ich :D)

    Allerdings verstehe ich nicht wie die Funktion mir Call by Value realisieren kann. Ich kann doch bei einer Funktion nur einen Wert zurück geben, oder?

    Vielen Dank für die Antworten 🙂



  • Du kannst ein std::pair zurückgeben.



  • Mhm, in der Aufgabe steht nicht, dass die Funktionen etwas zurückgeben sollen. Ich denke, es geht eher darum, aufzuzeigen, dass man bei Übergabe via Pointer oder Referenz die Variablenwerte direkt beim Aufrufer ändern kann, und bei Übergabe by Value eben nicht.



  • Belli schrieb:

    Mhm, in der Aufgabe steht nicht, dass die Funktionen etwas zurückgeben sollen. Ich denke, es geht eher darum, aufzuzeigen, dass man bei Übergabe via Pointer oder Referenz die Variablenwerte direkt beim Aufrufer ändern kann, und bei Übergabe by Value eben nicht.

    Ich soll die Werte doch aber ausgeben, dazu muss ich doch die Rüchkabewerte der Funktion ausgeben oder nicht?

    Das mit dem std::pair ist ein guter Tipp, allerdings hatten wir das nicht in der <Vorlesung und ich denke, dass ich die AUfgabe anders lösen soll 🙂


  • Mod

    bocksch schrieb:

    Das mit dem std::pair ist ein guter Tipp, allerdings hatten wir das nicht in der <Vorlesung und ich denke, dass ich die AUfgabe anders lösen soll 🙂

    Vermutlich so wie Belli sagt!



  • Hat alles geklappt, danke 🙂


Log in to reply