- Zusammengesetzter Operator
- Operator-Ausdruck
- Rücksetzoperator return
- Konditionaloperator if-else
- Ternärer Operator ?:
- Umschalteroperator switch
- Loop-Operator while
- Loop-Operator for
- Loop-Operator do while
- Endoperator break
- Fortsetzungsoperator continue
- Operator der Objekterzegung new
- Operator der Objektenfernung delete
Ternärer Operator ?:
Gesamtform des ternären Operators sieht so aus:
Ausdruck1? Ausdruck2:Ausdruck3 |
Als erster Operand – "Ausdruck1" – kann jeder Ausdruck verwendet werden, dessen Ergebnis der Wert bool ist. Wenn das Ergebnis true ist, wird die Anweisung durchgeführt, die vom zweiten Operator vorgegeben wird, d.h. "der Ausdruck2".
Wenn aber der erste Operand false wird der dritte Operand - "Ausdruck3" durchgeführt. Der zweite und der dritte Operand muessen Werte eines Typs Typs zurückgeben und den Typ void nicht haben. Ergebnis der Durchführung des Wenn-Operators ist das Ergebnis des Ausdrucks2 oder Ergebnis des Ausdrucks3, abhängig vom Ergebnis des Ausdrucks1.
//--- normieren wir Differenz unter Eröffnungspreisen und Schlusspreisen im Tagsausmass
|
Diese Aufzeichnung ist der nächsten äquivalent
double true_range;
|
Einschränkungen bezüglich der Verwendung des Operators #
Basierend auf dem Wert von "Ausdruck1", muss der Operator einen der zwei Werte zurückgeben - entweder "Ausdruck2" oder "Ausdruck3". Es gibt einige Einschränkungen auf diese Ausdrücke:
- Verwechseln Sie nicht den benutzerdefinierten Typ mit dem einfachen Typ oder Enumeration. NULL kann fur den Zeiger verwendet werden.
- Wenn Typen von Werten einfach sind, wird der Operator des maximalen Typs sein (siehe Typ-Umwandlung).
- Wenn einer der Werte eine Enumeration ist und die zweite von einem numerischen Typ ist, wird die Enumeration durch int ersetzt und die zweite Regel angewendet wird.
- Wenn beide Werte Enumerationen sind, müssen ihre Typen identisch sein, und der Operator wird vom Enumeration-Typ sein.
Einschränkungen für die benutzerdefinierte Typen (Klassen oder Strukturen):
- Typen müssen identisch sein oder sollte eine von dem anderen abgeleitet werden.
- Wenn Typen nicht identisch sind (Vererbung), dann wird das Kind implizit zum übergeordneten Typ umgewandelt, dh der Operator wird von der übergeordneten Typ sein.
- Verwechseln Sie nicht das Objekt und den Zeiger - beide Ausdrücke sind entweder Objekte oder Zeiger. NULL kann für den Zeiger verwendet werden..
Hinweis
Seien Sie vorsichtig bei der Verwendung des Wenn-Operators als Argument für eine überladene Funktion, da der Typ des Resultats des Wenn-Operators zum Zeitpunkt der Kompilation des Programms definiert wird. Und dieser Typ ist wie die größeren vom Typen "Ausdruck2" und "Ausdruck3" definiert.
Beispiel:
void func(double d) { Print("double argument: ",d); }
|
Sehen Sie auch
Initialisierung der Variablen, Sichtbereich und Lebensdauer der Variablen, Erzeugung und Entfernung der Objekte