30.06.2013 Aufrufe

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

2.6 Symbolische Konstanten 47<br />

Ich möchte Lesern, die ungeübt im Umgang mit Scope und Lifetime von<br />

Variablen <strong>in</strong> C s<strong>in</strong>d, wärmstens die Lektüre der Abschnitte 8.2, 17.1 und<br />

17.3 aus <strong>Softwareentwicklung</strong> <strong>in</strong> C ans Herz legen!<br />

Zu Scope und Lifetime gibt es noch zusätzliche Aspekte, die sich aus der<br />

Objektorientierung und aus dem Konzept von Namespaces ergeben. Diese<br />

besonderen Aspekte werden an den entsprechenden Stellen ergänzend angeführt.<br />

2.6 Symbolische Konstanten<br />

Der Begriff der symbolischen Konstanten bedeutet e<strong>in</strong>e Zuordnung e<strong>in</strong>es symbolischen<br />

Namens zu e<strong>in</strong>em konstanten Wert, wobei im Programm der symbolische<br />

(sprechende!) Name verwendet wird, anstelle des dah<strong>in</strong>ter versteckten<br />

konstanten Wertes. Entwickelt man z.B. Software, <strong>in</strong> der die maximale<br />

Anzahl gleichzeitiger Benutzer e<strong>in</strong>e Rolle spielt, so ist es natürlich wünschenswert,<br />

im Code e<strong>in</strong>fach e<strong>in</strong>en symbolischen Namen wie MAX_USERS zu verwenden,<br />

anstatt z.B. überall 120 h<strong>in</strong>zuschreiben.<br />

Für den Gebrauch von symbolischen Konstanten gibt es vor allem zwei<br />

Hauptmotivationen:<br />

• Konstanten mit sprechenden Namen machen den Code bei weitem leichter<br />

lesbar als kryptische hardcodierte Werte.<br />

• Konstanten, die an e<strong>in</strong>er Stelle def<strong>in</strong>iert und dann vielfach im Code verwendet<br />

werden, erhöhen die Wartbarkeit und Erweiterbarkeit der Software<br />

erheblich. Nimmt man das Beispiel mit der maximalen Anzahl gleichzeitiger<br />

Benutzer von zuvor zur Hand, dann sieht man sofort, dass es e<strong>in</strong>facher<br />

ist, an e<strong>in</strong>er Stelle die Def<strong>in</strong>ition von MAX_USERS von z.B. 120 auf 200<br />

zu ändern, anstatt im gesamten Code nach jedem Auftreten der Zahl 120<br />

zu suchen und diese auszubessern. Lesern, die nun me<strong>in</strong>en, dass so etwas<br />

ja sowieso bei modernen Editoren nach der Search-and-Replace Methode<br />

funktioniert, möchte ich nur entgegenhalten, dass ja ke<strong>in</strong>esfalls garantiert<br />

ist, dass die Zahl 120 nicht auch anderwärtig für etwas völlig Verschiedenes<br />

gebraucht wird. Diese Vorkommen will man natürlich nicht ändern und<br />

damit bleibt nur noch mühsamste Handarbeit. Ab e<strong>in</strong>er gewissen Menge<br />

Code ist jede Änderung de facto unmöglich.<br />

Im Unterschied zu C, wo ausschließlich Preprocessor-Macros für symbolische<br />

Konstanten verwendet werden, ist <strong>in</strong> C ++ e<strong>in</strong>e Möglichkeit der Def<strong>in</strong>ition<br />

von symbolischen Konstanten im Sprachumfang enthalten. Diese werden im<br />

Pr<strong>in</strong>zip def<strong>in</strong>iert wie Variablen, nur dass vor die Bezeichnung des Datentyps<br />

noch das Keyword const gestellt wird.<br />

Der Vorteil der Art der Def<strong>in</strong>ition von Konstanten <strong>in</strong> C ++ gegenüber der<br />

<strong>in</strong> C üblichen Preprocessor-Variante liegt auf der Hand: Konstanten <strong>in</strong> C ++

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!