Valentin Wirth: Funktion mit 2 Rückgabewerten in C++

Hi,
Ich weiss ja das ich für die Frage hier evt. nicht wirklich richtig bin aber das Selfforum hilft mir doch immer ;-)

Ich fange gerade mit C++ nebenbei an und verzweifle gerade daran eine Funktion zu schreiben die 2 Rückgabewerte gibt. So wie folgt schein es schon mal nicht zu gehen. Ich will eigendlich auch nicht immer in de Funktion globale Variablen verändern - es muss doch auch möglich sein mehrere Ergebnisse aus einer Funktion zurückzugeben.

...
int Wert1,Wert2 = funktionXY(10,20);
...

int funktionXY (int A, int B) {
        ...
 return A,B;
}

Mein C++ Buch kommt erst in ein Paar Tagen und im Internet bin ich nicht fündig geworden vielleicht kann ja einer von euch mir helfen.

mfg Valentin

  1. Einfach per Referenz übergeben, dann ändert du die Werte der übergebenden Variablen

    int Wert1,Wert2;
    funktionXY(Wert1,Wert2);
    ...

    void funktionXY (int& A, int& B) {
     ...
     A=x;
     B=y;
    }

  2. Hi Valentin

    Ich fange gerade mit C++ nebenbei an und verzweifle gerade daran eine Funktion zu schreiben die 2 Rückgabewerte gibt.[...]

    Daran wird jeder verzweifeln, weil es nicht geht. Du musst die Daten entweder in _ein_ Array oder in _ein_ Objekt packen, welechs du zurück gibtst, oder du musst mit Pointern arbeiten, die du der Funktion als Parameter übergibst.

    MfG & HtH

    Tom2

    --
    SELF-Code: (http://emmanuel.dammerer.at/selfcode.html)
    ss:| zu:) ls:& fo:) de:] va:) ch:] sh:( n4:& rl:° br:> js:| ie:% fl:( mo:}
  3. Hallo,

    Ich fange gerade mit C++ nebenbei an und verzweifle gerade daran eine Funktion zu schreiben die 2 Rückgabewerte gibt.

    Mit C++ kenne ich mich nicht aus. Aber in anderen Sprachen ist es eigentlich üblich, dass eine Funktion immer nur eine Variable zurückgibt. Wenn du da mehrere Werte übergeben willst, dann solltest du als Rückgabewert deiner Funktion ein Array zurückliefern.
    Hoffe mal dass dir das irgendwie hilft. Bei Perl ist es zumindest so, dass ich sagen kann >>return ($scalar1, $scalar2);<<. Dann gibt es ein Array welches die Werte enthält.

    Viele Grüße,

    Stefan