Die Verwendung von Klammern zur Bildung von Operanden in C++
Einführendes Beispiel
Ein Operand des Divisionsoperators muß ein Vorzeichenausdruck sein. Zwei Divisionen können hintereinander ausgeführt werden, indem ein Klammerausdruck als Vorzeichenausdruck verwendet wird.
main.cpp
#include <iostream>
#include <ostream>
#include <string>using namespace ::std::literals;
int main() { ::std::cout <<( 24/3 )/2 << "\n"s; }
- Protokoll
4
Bei der Auswertung werden zwei Operationen des Divisionsoperators angelegt und ausgeführt.
Manche Programm haben Lücken, die vor dem Start des Programms noch gefüllt werden müssen. Solche Lücken nennen wir auch Parameter.
Ein Programm, das solche Lücken haben kann, nennen wir ein parametrisiertes Programm.
Ein Operator steht für ein parametrisiertes Programm. Der Divisionsoperator benötigt beispielsweise noch zwei Werte für seine beiden Operandenstellen.
Eine Operation ist die Verbindung eines parametrisierten Programms (hier durch den Operator »/« dargestellt) mit Werten für die Parameter (Operandenstellen) des Programms.
- Operationen
24/3
8/2
Bei der Darstellung von Operationen stehen Literale für ihre Werte und Operatoren für ihre internen Programme.
Die C++ -Implementation wertet Ausdrücke durch eine Folge von Operationen aus.
Eine Programmiersprache stellt Operationen und Mittel zur ihrer Kombination bereit.
In diesem Abschnitt haben wir gesehen, wie zwei Divisionsoperationen kombiniert werden können.
Syntax
Das folgende Syntaxdiagramm läßt es erkennen, warum »( 24/3 )/2« ein Ausdruck ist.
Die Operanden des Divisionsoperators müssen unäre Ausdrücke sein.
Der erste Operand »( 24/3 )« ist ein unärer Ausdruck, weil er als Klammerausdruck ein Primärausdruck ist.
Der zweite Operand »2« ist ein unärer Ausdruck, weil er als Literal ein Primärausdruck ist.
- Neue, erweiterte Syntax
Primaerausdruck
.----------.
---.------------>| Literal |------------.--->
| '----------' |
| .-. .----------. .-. |
'--->( ( )--->| Ausdruck |--->( ) )---'
'-' '----------' '-'unaerer Ausdruck
.-----------------.
---.--------------------->| Primaerausdruck |---.--->
| '-----------------' |
| .------------. .-----------------. |
'--->| Vorzeichen |--->| Primaerausdruck |---'
'------------' '-----------------'Vorzeichen
.-.
---.--->( + )---.--->
| '-' |
| .-. |
'--->( - )---'
'-'Divisionsausdruck
.------------------.
---.------------------------------------>| unaerer Ausdruck |---.--->
| '------------------' |
| .------------------. .-. .------------------. |
'--->| unaerer Ausdruck |--->( / )--->| unaerer Ausdruck |---'
'------------------' '-' '------------------'Ausdruck
.-------------------.
--->| Divisionsausdruck |--->
'-------------------'