Funktion mit 2 rückgabewerten
-
Du meinst sowas hier?
#include <iostream> void Funktion(int &zahl1, int &zahl2) { zahl1 = 7; zahl2 = 3; } int main() { int zahl1 = 5; int zahl2 = 6; Funktion(zahl1, zahl2); std::cout << zahl1 << " " << zahl2; }Wäre natürlich auch eine Variante, gefällt mir auch persönlich besser als die Arraysache, aber ist nunmal Geschmackssache.
Edit:
Kóyaánasqatsi schrieb:
@FreakY<3Cpp
const und reference sollten dir aber kein Fremdwort sein
... Nein, aber ich hab es eben schnell hingeklatscht, da hab ich jetzt auf Sachen die zwar gut wären, aber nicht von nöten sind, weggelassen.
-
Kóyaánasqatsi schrieb:
Zeig mal, wie soll das denn dann aussehen?
Ich an so etwas gedacht:
#include <iostream> void calculate_something(int & a, int & b); int main() { using namespace std; int a = 10; int b = 20; cout << "Before calculation: " << "a = " << a << ", b = " << b; calculate_something(a, b); cout << endl << endl; cout << "Before calculation: " << "a = " << a << ", b = " << b; cout << endl << endl; return 0; } void calculate_something(int & a, int & b) { a += 10; b += 20; }Natürlich ist die Berechnung in calculate_something(...) völliger Unfug, reicht aber als Beispiel. Hier hat man zwar keine Rückgabewerte, die beiden Werte a und b wurden aber trotzdem verändert.
So wie ich das sehe wäre das auch eine Möglichkeit.
*Edit:
@ FreakY<3Cpp
Jup, genau das habe ich gemeint
-
Kóyaánasqatsi schrieb:
icarus2 schrieb:
Ich war auch schon in einer ähnlichen Situation. Wäre eventuell "pass by reference" noch eine Möglichkeit oder ist das sehr hässlich?
Zeig mal, wie soll das denn dann aussehen?
@FreakY<3Cpp
const und reference sollten dir aber kein Fremdwort sein
Wie du das mitner const reference machst will ich aber mal sehen...
-
so habs geschafft.

hab die array variante genommen, die anderen waren entweder zu kompliziert für mein verständnis
oder haben net funktioniert.
musste halt n bisl alles zurecht basteln.# include <iostream> using namespace std; int funktion1(int a[2]) { //Berechnungen (veränderung von a[0] und a[1]) return a; } int main() { int a[2] a[0]=1; a[1]=2; //.... funktion1(a); //weitere Berechnungen mit den von funktion1 zurückgegebenen Werten return 0; }Mein Programm is etwas komplizierter als mein beispiel hier, aber vom prinzip is es das selbe.
habe meine 2 variablen ganz weggelassen und habe gleich mit array gerechnet, übergeben und zurückgegeben...ich danke euch für die hilfe...


-
Mmc schrieb:
oder haben net funktioniert.

Kann nicht sein, ich hab alle getestet und alle haben einwandfrei funktioniert.
-
naja mag schon sein dass die funzen,aber bei mir net weil ich den zusammenhang net kapiert habe und ich einfach eingetippt habe und der mir dauernd fehler angezeigt hatte. hab einfach alles ausprobiert und bei den arrays hats geklappt und ich habs auch noch kapiert wie das geht. nützt mir nämlich nix wenn ich nur tippe und nix kapiere.
-
Klar, aber bedenke, dass es nicht die beste Lösung ist. Du sollst wissen was du da schreibst, aber stempel es nicht als gut ab.
-
ich weiß, aber für mich geht es und profi will ich ja net werden.
so wird langsam zeit. ich geh jatzt pennen...
-
Mein Programm is etwas komplizierter als mein beispiel hier, aber vom prinzip is es das selbe.
habe meine 2 variablen ganz weggelassen und habe gleich mit array gerechnet, übergeben und zurückgegeben...Ich weiss zwar nicht, was du genau gemacht hast, aber ein natives Array zurückgegeben hast du bestimmt nicht..
-
Ich hätte einfach die beiden Werte als Referenz an die Funktion übergeben.
Find ich am besten;-)
-
fr33g schrieb:
Ich hätte einfach die beiden Werte als Referenz an die Funktion übergeben.
Find ich am besten;-)Je nachdem macht eine Klasse, die als tuple fungiert auch Sinn.
-
Wieso erwähnt hier denn keiner std::pair?

-
Wurd doch schon erwähnt.
-
Ah right, übersehen. Das sollte man aber noch mal ganz laut äußern, wenn der TE die Absicht hat, Arrays zurück zu geben.