16.09.2017 Aufrufe

Vorkurs Informatik

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

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

C.5 Übersetzungsprozess von C++-Programmen 349<br />

1 #ifndef BACHELOR_H<br />

2 #define BACHELOR_H<br />

3<br />

4 #include "Studierende.h"<br />

5 #include "HiWi.h"<br />

6<br />

7 class Bachelor : Studierende, HiWi{<br />

8 public:<br />

9 Bachelor();<br />

10 ~Bachelor();<br />

11 };<br />

12 #endif<br />

Abbildung C.11: Schematik<br />

Quellcode C.10: Klasse Bachelor<br />

Abbildung C.12: Prinzip der „Mehrfachvererbung“ in einer schematischen Darstellung und am Beispiel<br />

der Headerdatei „Bachelor.h“ zur Klasse Bachelor<br />

der Erstellung von Klassen, Eigenschaften von anderen Klassen (teilweise) zu übernehmen. Hierbei erbt<br />

die Unterklasse von der Oberklasse die Methoden und Attribute. Zudem können im Hinblick auf eine Spezialisierung<br />

auch weitere Methoden oder Attribute hinzukommen. In der Abbildung C.10 wird das Prinzip<br />

der Verarbeitung an einem einfachen Beispiel vermittelt, wobei die Klasse Bachelor (Unterklasse) von<br />

der Klasse Studierende (Oberklasse) erbt. In C++ wird der Mechanismus der Vererbung durch den Vererbungsoperator<br />

„:“ ausgedrückt, welcher in Java dem Schlüsselwort extends entspricht. In Erweiterung<br />

zu Java ist in C++ auch das Konzept der Mehrfachvererbung möglich. Konzeptionell kann eine Mehrfachvererbung<br />

durch eine Konkatenation der vererbenden Klassen erfolgen, welche jeweils durch ein Komma<br />

getrennt aufgelistet werden. Dieses Prinzip verdeutlicht die Abbildung C.12. Im vorliegenden Fall erbt die<br />

Klasse Bachelor (Unterklasse) von zwei Oberklassen, Studierende und HiWi.<br />

C.5 Übersetzungsprozess von C++-Programmen<br />

Der vorliegende Abschnitt greift den einleitend im Kapitel C.1.1 thematisierten Übersetzungsprozess für<br />

C++-Programme auf und charakterisiert die drei Komponenten<br />

1. Präprozessor: Vorverarbeitung des Quellcodes<br />

2. Compiler: Überführung von Quellcode in Objektcode<br />

3. Linker: Zusammenfassung aller Objektdateien zu einem ausführbaren Programm<br />

ausführlicher. Zur intuitiveren Vermittlung der Zusammenhänge sei auch auf die Darstellung innerhalb der<br />

Abbildung C.13 verwiesen, welche den Übersetzungsprozess und die beteiligten Komponenten in einem<br />

schematischen Ablaufdiagramm darstellt.<br />

Die erste Komponente, der Präprozessor, ist eigentlich eine Unterstruktur des Compilers und führt textuelle<br />

Änderungen an den Quellcodedateien durch. Hierzu müssen im Quellcode spezielle Präprozessor-Befehle<br />

vorliegen, welche immer mit dem Hash-Zeichen „#“ beginnen. Zu beachten ist, dass die Präprozessor-<br />

Befehle, auch Compilerdirektiven genannt, im Gegensatz zu den normalen C++-Befehlen nicht mit einem<br />

Semikolon abgeschlossen werden. Ein uns bereits bekanntes Beispiel repräsentiert die Zeile

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!