funktion rückgabe



  • void heißt einfach: Die Funktion gibt nichts zurück. Nicht mehr und nicht weniger.



  • Also, wenn du z.B. int als Rückgabetyp wählst, in der Funktion aber versuchst, deinem return einen float mitzugeben, wird dein Compiler meckern. Ich denk mal, das meintest du mit "datentyp des gesamtausdrucks"...

    ja so meinte ich es auch 🙂
    schlecht ausgedrückt. man müsste den float in dem fall umwandeln damit der compiler nicht meckert.

    void gibt nichts zurück. da hatte ich halt meine probleme mit, warum gibt der nichts zurück wenn der wert aber doch an den aufrufer zurückgegeben wird. ich habe hier nicht unterschieden zwischen rückgabetyp der funktion und dem rückgabetyp des wertes des ausdrucks in der funktion.
    ich dussel dachte wenn die funktion mit void nichts zurückgibt wie kommt dann der wert an den aufrufer zurück *gg* und somit den sinn der funktion in frage gestellt. 🙄
    jetzt habe ich es aber.

    ich bedanke mich 🙂



  • gugg dir mal dieses beispiel an:

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    void GibAus(string Ausgabe)
    {
        cout << Ausgabe << endl;
    }
    
    int main()
    {
        string bla = "Hallo";
        GibAus(bla);
    }
    

    Hier wäre es unsinnig, wenn GibAus() einen Wert zurückliefern soll, weil es nur Aktionen ausführt und keinen Wert bearbeitet und dann an die main-Funktion zur weiteren Verwendung zurückgibt.
    Der Rückgabewert einer Funktion ermöglicht dir also direkte Zuweisungen:

    // ...
    
    int summe = Addiere(a,b);
    
    // ...
    

    Bildlich kannst du dir also vorstellen, dass an der Stelle, wo du eine Funktion aufrufst, die einen Wert zurückgibt, dieser zurückgegebene Wert "eingesetzt" wird. Oben stände dann zum Beispiel (wenn a = 5 und b = 6 ist):

    //...
    
    int summe = 11;
    
    // ...
    

    MFG
    Chris

    EDIT: Funktionen ohne Rückgabewert werden übrigens auch Prozeduren genannt. Vielleicht sagt dir das mehr.



  • Zyrian schrieb:

    EDIT: Funktionen ohne Rückgabewert werden übrigens auch Prozeduren genannt. Vielleicht sagt dir das mehr.

    Ist das allgemeingültig? Kenn ich nur aus Pascal.



  • es gibt keine prozeduren in c++



  • otze schrieb:

    es gibt keine prozeduren in c++

    ok 🙂
    Prozedur kann man halt imho als Synonym für eine Funktion ohne Rückgabe bezeichnen. Ich wollte halt nur ein Wort in die Runde werfen, was einem vielleicht mit der Vorstellung einer Funktion ohne Rückgabewert etwas unter die Arme greift 😉



  • wenn du jetzt noch mit records anfängst, schlag ich dich 🤡



  • nooin 😮 *duck*

    öhh, was sind records? waren das net structs in Pascal? ich glaub, das aufgeschnappt zu haben, als mein infolehrer mal über diese "tolle" sprache philosophierte. 😃

    C.



  • jo, wo wir grad bei bildlichen ausdrückenw aren, wollte ich verhindern, dass du den auch noch dazu nimmst^^



  • naja, damit würd ich ja alles ins lächerliche ziehen 😉 😃


Anmelden zum Antworten