Einführung in optionale Argumente in Aufrufen in C++ im Rahmen der Lehre des Programmierens mit C++. ( C++ optionales Argument C++ optionale Argumente C++ Funktion C++ Funktionsausdruck C++ Vorgabewert C++ Vorgabe), Lektion, Seite 721195
http://www.purl.org/stefan_ram/pub/c++_aufruf_optionales_argument_de ist die kanonische URI dieser Seite.
Stefan-Ram-Startseite

Optionale Argumente in C++

Funktionen können optionale Argumente haben. Hierzu kann den letzten Parametern ein Vorgabewert zugeordnet werden. Diese können dann von hinten nach vorne weggelassen werden. Wurde ein Argument weggelassen, so müssen also auch alle folgenden Argumente weggelassen werden.

Da es keine vordefinierte und einfach zu verwendende Standardfunktion gibt, für die ein Vorgabewert definiert ist und es zu undefiniertem Verhalten führte, wenn Programme eigene Deklarationen für Vorgabewerte zu Funktionen aus dem Namesraum "::std" hinzufügten, kann kein einfaches Beispielprogramm geschrieben werden, das die Verwendung eines Vorgabewertes anhand der Standardbücherei vorführte.

Deswegen verwenden die folgende Beispielprogramme eine erfundene  Funktion "root" zur Berechnung der Wurzel eines Radikanden. Der erste Parameter ist der Radikand (engl.: “radicand ”). Der zweite Parameter dieser Funktion ist der Wurzelexponent (engl.: “exponent of the root ”) mit dem Vorgabewert "2".

Synopse
double root( double, double = 2 );

Weil es diese Funktion nicht wirklich in C++  gibt (wenn man sie nicht definiert, was in anderen Lektionen behandelt wird), sind die beiden folgenden Beispielprogramme so natürlich nicht ausführbar. Praktischen Nutzen haben die Vorgabewerte aber trotzdem, nämlich in Zusammenhang mit programmiererdefinierten Funktionen, die in anderen Lektionen behandelt werden und mit einigen Funktionen der C++ -Bücherei, die aber hier noch nicht verwendet werden sollen, weil sie für diese Lektion zu viel Fachwissen voraussetzen.

Das folgende Programm berechnete, wenn es eine solche Funktion gäbe, die dritte Wurzel  aus 16.

Wurzel.cpp
#include <iostream> 
#include <ostream>
int main(){ ::std::cout << root( 27, 3 )<< '\n'; }

::std::cout
3

Das nächste Programm berechnete dann mit derselben Funktion eine Quadratwurzel. In diesem Fall wurde das zweite Argument einfach weggelassen. Weil Argumente nur von hinten nach vorne weggelassen werden können, ist es klar, daß das angegebene Argument zum Radikand-Parameter gehört. Durch den definierten Vorgabewert "2" ist auch festgelegt, daß der Funktionsausdruck so berechnet wird, als sei der Wurzelexponent 2 angegeben.

Quadratwurzel.cpp
#include <iostream> 
#include <ostream>
int main(){ ::std::cout << root( 64 )<< '\n'; }

::std::cout
8

Von der Stefan-Ram-Startseite ausgehend finden sich oft noch mehr Informationen zu Themen, die auf einer Seite angesprochen wurden. (Eine Verbindung zur Stefan-Ram-Startseite befindet sich ganz oben auf dieser Seite.)  |   Seiteninformation und Impressum  |   Formular für diese Seite betreffende Mitteilungen an den Herausgeber  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. slrprd, PbclevtugFgrsnaEnz