Einführung in die Rückgabe von Werten aus Funktionen im Rahmen der Lehre des Programmierens mit der Programmiersprache C++. [] (C++ return-Anweisung C++ Rückgabe C++ Rückgabeanweisung C++), Lektion, Seite 721423 http://www.purl.org/stefan_ram/pub/c++_wertrueckgabe_de (Permalink) ist die kanonische URI dieser Seite. Stefan Ram
Die Wertrückgabe in C++
Der Wert einer Funktion wird durch eine in der Funktion vorkommende Rückgabeanweisung festgelegt, die eine Art von Sprunganweisung 〈jump-statement〉 ist.
〈jump-statement〉 ::=
"return" [〈expression〉] ";".
Beispiel Wochentage
Das folgende Beispiel zeigt die Verwendung der Rückgabeanweisung in C++.
In der Definition der Funktion "wochentage" wird als Ergebnis der Wert des Ausdrucks "7" festgelegt. Der Datentyp "int" wird hier vor dem Funktionsnamen anstelle des bei Wirkfunktion üblichen Datentyps "void" angegeben, um festzulegen, daß das Ergebnis der Funktion vom Datentyp "int" ist.
result.cpp
#include <iostream> #include <ostream>
int wochentage(){ return 7; }
int main(){ ::std::cout << 2 * wochentage() << '\n'; }
::std::cout
14
Mehrwertsteuer
Schreiben Sie die Definition einer Wertfunktion "mehrwertsteuersatz", so daß der Wert des Aufrufs »mehrwertsteuersatz()« der derzeit geltende (nicht ermäßigten) Mehrwertsteuersatz vom Datentyp "double" ist. Verwenden Sie diesen Wert, um die Mehrwertsteuer für einen Warenwert von 10,00 Euro auszugeben.
Mit der Rückgabeanweisung wird auch die Kontrolle an den Aufrufer der Funktion zurückgegeben. Daher werden nachfolgende Anweisungen nicht mehr ausgeführt. Deswegen gilt die Rückgabe auch als Sprunganweisung.
Da die Rückgabeanweisung der normale Abschluß einer Wertfunktion ist und jeder Block nur einen Ausgang haben sollte, empfiehlt es sich, daß die Rückgabeanweisung immer am Ende einer Wertfunktion steht.
Jede Wertfunktion sollte nur eine Rückgabeanweisung haben und zwar als letzte Anweisung.
Nur fortgeschrittene Programmierer dürfen von dieser Regel abweichen, um Laufzeiteigenschaften zu beeinflussen.
Auch die Hauptfunktion "main" wird als Funktion mit einem Rückgabewert vom Typ "int" definiert. Doch gelten für die Hauptfunktion "main" einige Besonderheiten: Wenn die Kontrolle die letzte schließende geschweifte Klammer erreicht, so entspricht dies der Anweisung "return 0;", die bei der Hauptfunktion "main" also entfallen darf. Man darf dies aber nicht testen, indem man die Hauptfunktion "main" nun wie jede andere Funktion aufruft, denn diese Funktion darf nicht in Programmen aufgerufen werden. (Sie wird beim Start des Programms aktiviert.)
Man könnte eine Wert auch mit dem Vorverarbeiter benennen. Doch fügen sich solche Definition schlechter in die Sprache C++ ein und sollten vermieden werden, obwohl sie aus historischen Gründen in einigen Fällen genutzt werden.