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.

9.2 E<strong>in</strong>fache Klassen 171<br />

fe direkt angesprochen werden. Zeile 26 bedeutet also Folgendes: Weise dem<br />

Member first_name_ der struct Name den Wert 0 zu.<br />

Vorsicht Falle: E<strong>in</strong> Teil der gängigen Praxis, die aus dem Cod<strong>in</strong>g Standard<br />

dieses Buchs resultiert, ist, dass es problemlos vorkommen kann, dass<br />

Parameter und Members quasi denselben Namen haben, nur dass eben Members<br />

durch e<strong>in</strong>en Unterstrich am Ende gekennzeichnet s<strong>in</strong>d. Wenn man den<br />

Cod<strong>in</strong>g Standard gewohnt ist, dann ist dies e<strong>in</strong> sehr angenehmes Feature,<br />

denn man muss nicht mit Gewalt e<strong>in</strong>en neuen Namen für e<strong>in</strong>en Parameter<br />

erf<strong>in</strong>den, der dann vielleicht e<strong>in</strong> wenig holprig ausfällt.<br />

Der Stolperste<strong>in</strong> bei dieser Praxis, der sich am Anfang auftut, ist, dass<br />

man noch nicht <strong>in</strong>tuitiv beim Lesen auf den Unterstrich triggert und somit<br />

z.B. die Zeile 30 durch schlampiges Lesen auf den ersten Blick komisch<br />

aussieht. Der erste Parameter von strcpy, also first_name_, bezeichnet<br />

nämlich den entsprechenden Member und der zweite Parameter, also<br />

first_name, bezeichnet den Übergabeparameter der <strong>in</strong>it Methode.<br />

Ich kann allerd<strong>in</strong>gs versichern, dass die Gewöhnungsphase an diesen Cod<strong>in</strong>g<br />

Standard, <strong>in</strong> der man solche Flüchtigkeitsfehler beim Lesen macht, sehr<br />

kurz ist. Ich kenne viele Leute, die genau nach diesem Cod<strong>in</strong>g Standard<br />

arbeiten und die sehr bald nicht das ger<strong>in</strong>gste Problem mehr beim Lesen<br />

solcher Programmzeilen hatten, weil der Underl<strong>in</strong>e am Ende <strong>in</strong> Fleisch und<br />

Blut übergegangen ist.<br />

Ich möchte nun an dieser Stelle ke<strong>in</strong>e näheren Ausführungen mehr über<br />

Structures br<strong>in</strong>gen, da wir alles, was hier gesagt werden könnte, bei “echten”<br />

Classes wieder treffen werden. Structures s<strong>in</strong>d <strong>in</strong> C ++ tatsächlich Classes, bei<br />

denen alle Members standardmäßig public s<strong>in</strong>d. Was das bedeutet, sehen<br />

wir im kommenden Abschnitt, <strong>in</strong> dem wir uns endlich offiziell den Klassen und<br />

Objekten, mit all ihren Stärken (und auch Stolperste<strong>in</strong>en), <strong>in</strong> C ++ zuwenden.<br />

9.2 E<strong>in</strong>fache Klassen<br />

Klassen <strong>in</strong> C ++ realisieren das Konzept, dass Entwickler neue Datentypen<br />

erstellen können, die genauso e<strong>in</strong>fach und s<strong>in</strong>nvoll verwendet werden können,<br />

wie e<strong>in</strong>gebaute Datentypen (z.B. <strong>in</strong>t). H<strong>in</strong>ter allen Datentypen steckt immer<br />

e<strong>in</strong> Gesamtkonzept, z.B. gehören zu e<strong>in</strong>em <strong>in</strong>t natürlich auch die entsprechenden<br />

Operationen +, -, *, /, etc. Weiters ist def<strong>in</strong>iert, wie e<strong>in</strong> <strong>in</strong>t z.B. <strong>in</strong><br />

e<strong>in</strong>en float oder double umgewandelt werden kann. Solche Gesamtkonzepte<br />

lassen sich vollständig auch mit Klassen verwirklichen.<br />

Um nun nicht die üblichen Datums-, Vektor-, Matrix- und andere Klassen<br />

zur Erklärung heranzuziehen, die <strong>in</strong> verschiedensten Formen <strong>in</strong> mannigfaltigen<br />

Büchern und Tutorials zu Tode diskutiert wurden, möchte ich die<br />

Grundpr<strong>in</strong>zipien an e<strong>in</strong>em durchgehenden Beispiel aufbauend erklären. Die-

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!