Beispielprogramm: STANDARD.CPP
Das Programm STANDARD.CPP ist ein Beispiel für die Verwendung von Standardparametern in C++. Dieses Programm erweckt sicherlich einen etwas eigenartigen Eindruck, weil es für einige Parameter im Prototypen Standardwerte festlegt. Diese Standardwerte können aber sehr nützlich sein, wie wir gleich sehen werden.
Der Prototyp sagt uns, daß der erste Parameter, Laenge, bei jedem Funktionsaufruf angegeben werden muß, da für ihn kein Standardparameter festgelegt wurde. Den zweiten Parameter, Weite, müssen wir nicht bei jedem einzelnen Aufruf angeben, und wenn wir ihn nicht explizit angeben, verwendet das Programm den Wert 2 für die Variable Weite innerhalb der Funktion. So ist auch der dritte Parameter optional, und wird er nicht angegeben, wird in der Funktion der Wert 3 für die Variable Hoehe verwendet.
In Zeile 11 dieses
Programmes geben wir alle drei Parameter explizit an, es ist also
nichts Außergewöhnliches an diesem Funktionsaufruf zu
bemerken. In Zeile 12 geben
wir allerdings nur zwei Werte an und verwenden also den
Standardparameter für die dritte Variable. Das System reagiert
genau so, als hätten wir die Funktion mit Volumen(x, y,
3) aufgerufen, da der Standardwert für den dritten
Parameter 3 ist. In Zeile 13
geben wir beim Funktionsaufruf nur mehr einen Wert an, der für
den ersten formellen Parameter verwendet wird, die beiden anderen
nehmen die Standardwerte an. Das System verhält sich, als
hätten wir die Funktion mit Volumen(x, 2, 3)
aufgerufen. Beachte, daß die Ausgabe dieser drei Zeilen
umgekehrt erfolgt. Darauf werden wir in kürze eingehen.
Es gibt einige Regeln, die zwar offensichtlich sind, aber dennoch hier aufgeführt werden sollen. Sobald ein Parameter in der Liste der formellen Parameter einen Standardwert erhält, müssen auch die folgenden Parameter Standardwerte haben. Es ist nicht möglich, in der Mitte der Liste ein Loch zu lassen, die Vergabe von Standardwerten erfolgt von hinten nach vorne. Selbstredend müssen die Standardwerte die richtigen Variablentypen haben, andernfalls gibt der Compiler eine Fehlermeldung aus. Die Standardwerte können entweder im Prototypen oder im Funktionskopf angegeben werden, nicht jedoch in beiden. Würden die Standardwerte an beiden Orten angegeben, müßte der Compiler nämlich nicht nur diese Standardwerte verwenden, er müßte auch genau überprüfen, ob die beiden Werte auch wirklich identisch sind. Dies würde ein schon sehr schwieriges Unterfangen, das der Entwicklung eines C++ Compilers, noch weiter komplizieren.
Es sei hier wärmstens empfohlen, die Standardparameter im Prototypen anzugeben und nicht im Funktionskopf. Der Grund dafür wird klar werden, sobald wir objektorientierte Programmiertechniken anwenden.
Copyright © 1997, 1998, 2001-2006 Heinz Tschabitscher - Letzte Änderung 10. Dezember 2005
Heinz Tschabitscher - | Datenschutz | Impressum - Kommentare, Kritik, Anregungen, Beschwerden?