mehrere Varieblen zurückgeben



  • Wie kann man mit return mehrere Variablen zurückgeben?



  • Hallo

    Also wenn du eine Funktion hast die auch einen Return wert hat dann kann sie auch nur einen Wert zurück geben.
    Funktionen geben grundsätzlich nur einen Wert zurück.

    z.b

    int addiereZahl(int x, int y)
    {
    retrun x+y;
    }
    

    Wenn du jetzt willst das die Funktion mehrere Werte zurück gibt dann musst du mit Zeigern(Pointer) arbeiten

    das heisst du musst wenn du die Funktion aufruft, der Funktion zeiger als Parameter über geben.
    Und in der Funktion schreibst du dann deine ergebniss in die Adressen von den Zeigern.

    BYE



  • Hallo,
    direkt geht das nicht. C++ verwendet das Funktionskonzept und Funktionen haben die Eigenschaft genau einen Rückgabewert zu besitzen.

    Über Umwege kommst du aber trotzdem ans Ziel:
    1. Du kannst einen zusammengesetzen Typ zurückgeben (oder ein Array)

    // Array
    vector<int> MultiRetFunc()
    {
         vector<int> RetValues;
         RetValues.push_back(1);
         RetValues.push_back(2);
         return RetValues;
    }
    
    // zusammengesetzter Typ
    // Hinweis: Die C++ Standardbibliothek besitzt bereits einen
    // Typ names pair-
    struct Pair
    {
        int Eins;
        float Zwei;
    };
    
    Pair MultiRetFunc()
    {
         Pair RetValues;   
         RetValues.Eins = 1; 
         RetValues.Zwei = 34.23f; 
         return RetValues;
    }
    

    2. Du kannst out bzw. inout-Parameter verwenden (in C++ abgebildet auf Pointer bzw. Referenzen)

    int MultiRetFunc(float& RetVal2)
    {
        RetVal2 = 34.23f;
        return 7;
    }
    

Anmelden zum Antworten