next up previous contents index
Nächste Seite: 7.4 Felder als Parameter Aufwärts: 7. Funktionen Vorherige Seite: 7.2 Parameterübergabe   Inhalt   Index


7.3 Rückgabewerte von Funktionen

Jede Funktion besitzt ein Funktionsergebnis vom Datentyp <typ> . Als Typen dürfen verwendet werden: jedoch keine Felder und Funktionen - dafür aber Zeiger auf ein Feld bzw. eine Funktion und Referenzen auf Felder.

Der Rückgabewert (Funktionsergebnis) wird mit

return <ergebnis> ;

an das rufende Programm übergeben. Ein Spezialfall sind Funktionen der Art

void f(<parameter_liste>)

für welche kein Rückgabewert (void = leer) erwartet wird, sodaß mit

return ;

in das aufrufende Programm zurückgekehrt wird.

// Demonstration of void
void spass(const int);

main()
{
 ...
 spass(13);
 ...
}

void  spass(const int i)
{
 cout << "Jetzt schlaegt's aber" << i << endl;
 return;
}
(siehe Ex731.cc)

Beispiele für Funktionsergebnisse:
           
float f1(...)         float-Zahl
[struct] Student f2(...)         Struktur Student
int* f3(...)         Zeiger auf int-Zahl
[struct] Student* f4(...)         Zeiger auf Struktur Student
int (*f5(...))[]         Zeiger auf Feld von int-Zahlen
int (*f6(...))()         Zeiger auf Funktion, welche den Ergebnistyp int besitzt

Bemerkungen:

Eine Funktion darf mehrere Rückgabeanweisungen return [<ergebnis>]; besitzen, z.B., in jedem Zweig einer Alternative eine. Dies ist jedoch kein sauber strukturiertes Programmieren mehr.
$ \Longrightarrow$ Jede Funktion sollte genau eine return-Anweisung am Ende des Funktionskörpers besitzen (Standard für das Praktikum).


next up previous contents index
Nächste Seite: 7.4 Felder als Parameter Aufwärts: 7. Funktionen Vorherige Seite: 7.2 Parameterübergabe   Inhalt   Index
Gundolf Haase 2004-01-15