Hallo liebe Community,
ich arbeite gerade das Buch C++ für Spieleprogrammierer durch und hänge im Kapitel Funktionen. Dort steht, man kann auch Funktionen verschachteln. So weit so gut. Mit Funktionen, die keinen Rückgabewert verlangen geht so weit alles gut. Jetzt möchte ich aber gerne in den Funktionen rechnen und einen Integer zurückgeben. In der main Funktion soll die aufgerufene Funktion1 einen Wert 'Gesamt' zurückgeben. Die aufgerufene Funktion1 wiederum soll eine Funktion2 aufrufen, in der die Punkte eingegeben werden und der eingegebene Wert zurückgegeben wird. Hier erstmal der Quelltext:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
#include <iostream>
using namespace std;
int Funktion1();//Vorwärtsdeklaration
int Funktion2();//Vorwärtsdeklaration
int main ()
{
int Gesamt;
Gesamt = Funktion1 ();//rufe Funktion 1 auf und gebe Wert zurück
cout << "Punkte insgesamt: " << Gesamt << endl;//gib Gesamtpunkte aus nachdem Funktionen abgearbeitet
return 0;
}
int Funktion1 ()
{
cout << "Erste Funktion wurde aufgerufen" << endl;
Funktion2();
return Funktion2 ();
}
int Funktion2 ()
{
cout << "Zweite Funktion wurde aufgerufen" << endl;
int Punkte;
cout << "Bitte Punkte eingeben: ";
cin >> Punkte;
return Punkte;
}
|
Wenn ich nun die Funktion1 habe:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
|
int Funktion1 ()
{
cout << "Erste Funktion wurde aufgerufen" << endl;
Funktion2();
return Funktion2();
}
|
... dann führt diese die Funktion2 aus und soll den Wert übernehmen, den Funktion2 zurückgegeben hat, also die eingegebene Zahl.
Wie kann ich das machen? Wie kann ich den Wert von Funktion2 an Funktion1 zurückgeben?
Wenn ich einfach schreibe:
|
C-/C++-Quelltext
|
1
2
3
4
5
|
int Funktion1 ()
{
cout << "Erste Funktion wurde aufgerufen" << endl;
return Funktion2();
}
|
...dann funktioniert das soweit und Funktion1 nimmt den Wert, den Funktion2 zurückgegeben hat.
Aber geht es auch anders, so dass ich erst die zweite Funktion aufrufe und dann über return einen Wert zurückgebe?
|
C-/C++-Quelltext
|
1
2
3
4
5
6
|
int Funktion1 ()
{
cout << "Erste Funktion wurde aufgerufen" << endl;
Funktion2();
return ???;
}
|
Danke schon mal im Voraus...