6 Rückgabewerte in einer Funktion

FJK

Erfahrenes Mitglied
Hallo

Borland C++ 5.0 win xp

Ich Brauche eine Funktion mit mehreren Rückgabe werten ist das möglich?
Und wenn wie?
 
Zuletzt bearbeitet:
Ja zum Beispiel unter Definition einer struct und Verwendung von Call by Reference(die
Methode bekommt das Objekt nicht als Wert übergeben, sondern nur eine Referenz
auf das Original Objekt):

Code:
#include <iostream>

using namespace std;

struct foo{

        int elem1;
        int elem2;  
};

void changeFoo(foo* toChange){

        toChange->elem1 = 5;
        toChange->elem2 = 2;
}

void initFoo(foo* toInit){

        toInit->elem1 = 0;
        toInit->elem2 = 0;
}

ostream& operator<<(ostream& cout, foo* toPrint){ 
        cout << toPrint->elem1 << endl;
        cout << toPrint->elem2;
        return cout;
}


int main(){

        foo* f = new foo;
        initFoo(f);
        cout << f << endl;
        changeFoo(f);
        cout << f << endl;
        delete f;
}
~

Das kannst du natürlich auch mit Klassen oder atomaren Datentypen machen....

Die Rückgabe der Daten in einem Feld verpackt würde als zweite Möglichkeit gehen.
Ist aber problematisch.

Gruß

RedWing
 
Zuletzt bearbeitet:
Noch ein Nachtrag call by reference für Felder geht auch:

Code:
#include <iostream>

using namespace std;

void changeFoo(int* toChange){

        toChange[0] = 5;
        toChange[1] = 2;
}

ostream& operator<<(ostream& cout, int* toPrint){ 
        cout << toPrint[0] << endl;
        cout << toPrint[1];
}


int main(){

        int test[2] = {0,0};
        cout << test << endl;
        changeFoo(test);
        cout << test << endl;
}

Gruß

RedWing
 
Zurück