30.06.2013 Aufrufe

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

54 3. Operatoren<br />

kann auch durch Operator-Overload<strong>in</strong>g, wie wir es noch kennen lernen werden,<br />

nichts geändert werden. Die Regeln, die hierbei gelten, s<strong>in</strong>d e<strong>in</strong>fach:<br />

• Alle Operatoren besitzen e<strong>in</strong>en bestimmten Rang (=Precedence). E<strong>in</strong>e<br />

Auflistung der Operatoren nach ihren Rängen ergibt die sogenannte Rangreihenfolge<br />

(=Order of Precedence) der Operatoren untere<strong>in</strong>ander.<br />

E<strong>in</strong> typisches Beispiel für die Rangreihenfolge kennt man ja aus der Schulmathematik,<br />

wo z.B. die Regel Punkt- vor Strichrechnung gelehrt wird.<br />

Diese besagt, dass Multiplikation und Division (=Punktrechnung) ranggleich<br />

s<strong>in</strong>d, ebenso wie Addition und Subtraktion (=Strichrechnung), dass<br />

jedoch die Punktrechnung <strong>in</strong>sgesamt im Rang höher ist als die Strichrechnung.<br />

In wie auch immer gearteten Ausdrücken werden die Operatoren immer<br />

ihrer Rangreihenfolge gemäß, also vom höchsten bis zum tiefsten Rang<br />

absteigend, ausgewertet.<br />

• F<strong>in</strong>det sich <strong>in</strong> e<strong>in</strong>em Ausdruck e<strong>in</strong>e Kette von Operatoren mit demselben<br />

Rang (also gleichwertige Operatoren), so werden diese der Reihe nach von<br />

l<strong>in</strong>ks nach rechts ausgewertet.<br />

• Wenn die Reihenfolge der Auswertung bee<strong>in</strong>flusst werden soll, so gibt es<br />

die Möglichkeit zur Klammerung von Ausdrücken. Dazu können Paare von<br />

runden Klammern <strong>in</strong> beliebiger Schachtelungstiefe verwendet werden. Bei<br />

Klammerungen wird, wie zu erwarten, garantiert, dass die Ausdrücke von<br />

<strong>in</strong>nen nach außen <strong>in</strong> der Schachtelungshierarchie abgearbeitet werden.<br />

Aus Gründen der Lesbarkeit von Ausdrücken möchte ich noch e<strong>in</strong>e Kle<strong>in</strong>igkeit<br />

anregen: Klammerungen dürfen natürlich nicht ausschließlich dazu verwendet<br />

werden, die vorgegebene Auswertungsreihenfolge zu verändern, sondern<br />

sie s<strong>in</strong>d immer erlaubt. Für die Reihenfolge der Auswertung im Pr<strong>in</strong>zip<br />

unnötige Klammerungen schlagen sich def<strong>in</strong>itiv nicht im Laufzeitverhalten<br />

des Programms nieder. Allerd<strong>in</strong>gs erhöhen sie die Lesbarkeit von längeren<br />

Ausdrücken erheblich, wenn man sie zum Signalisieren von logischen Zusammengehörigkeiten<br />

verwendet. Salopp formuliert wäre me<strong>in</strong> Rat also Folgender:<br />

E<strong>in</strong> paar Klammern zu viel schaden nicht, e<strong>in</strong> paar zu wenig machen<br />

das Leben schwer.<br />

In der Folge ist aus Gründen des Überblicks e<strong>in</strong>mal e<strong>in</strong>e Tabelle mit der<br />

Gesamtaufstellung aller Operatoren zusammen mit ihrem zugehörigen Rang<br />

zu f<strong>in</strong>den. Hierbei bedeutet e<strong>in</strong>e niedrige Zahl für den Rang e<strong>in</strong>e höhere<br />

Priorität <strong>in</strong> der Reihenfolge. Diese Konvention, dass e<strong>in</strong>e niedrige Rangzahl<br />

e<strong>in</strong>e hohe Priorität bedeutet, ist <strong>in</strong> sehr vielen Prioritätsschemata üblich,<br />

deshalb will ich mit dieser Systematik hier nicht brechen.<br />

Für die Bedeutungen der e<strong>in</strong>zelnen Operatoren wurden bewusst die englischen<br />

Bezeichnungen verwendet, da diese im täglichen Leben des Softwareentwicklers<br />

gebräuchlicher s<strong>in</strong>d als die oftmals sehr holprigen deutschen<br />

Übersetzungen.<br />

Allen Lesern, die nun erschrecken, weil die Tabelle vielleicht doch auf den<br />

ersten Blick nicht wirklich unglaublich <strong>in</strong>formativ ersche<strong>in</strong>t, kann ich nur

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!