Walter Saumweber C++ Programmierhandbuch

Werbung
Walter Saumweber
C++ Programmierhandbuch
Walter Saumweber
C++
Programmierhandbuch
Walter Saumweber:
C++ Programmierhandbuch
ISBN: 978-3-939084-50-1
© 2007 entwickler.press
Ein Imprint der Software & Support Verlag GmbH
http://www.entwickler-press.de
http://www.software-support.biz
Ihr Kontakt zum Verlag und Lektorat: [email protected]
Bibliografische Information Der Deutschen Bibliothek
Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen
Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über
http://dnb.ddb.de abrufbar.
Satz: text&form GbR, Carsten Kienle
Titelgrafik: Melanie Hahn, Maria Rudi
Umschlaggestaltung: Caroline Butz
Belichtung, Druck & Bindung: M.P. Media-Print Informationstechnologie GmbH,
Paderborn
Alle Rechte, auch für Übersetzungen, sind vorbehalten. Reproduktion jeglicher Art
(Fotokopie, Nachdruck, Mikrofilm, Erfassung auf elektronischen Datenträgern oder
andere Verfahren) nur mit schriftlicher Genehmigung des Verlags. Jegliche Haftung für
die Richtigkeit des gesamten Werks kann, trotz sorgfältiger Prüfung durch Autor und
Verlag, nicht übernommen werden. Die im Buch genannten Produkte, Warenzeichen
und Firmennamen sind in der Regel durch deren Inhaber geschützt.
Inhaltsverzeichnis
Liebe Leserin, lieber Leser!
Teil I
Grundlagen
C++
13
15
1
Was ist Programmieren?
17
1.1
Was ist eigentlich ein Computerprogramm?
17
1.2
Entwicklungsschritte zum ausführbaren Computerprogramm
Aufsetzen des Quellcodes
Kompilierung
Präprozessor und Linker
20
20
20
22
1.3
Was versteht man unter einer IDE?
23
1.4
Was sind Konsolenprogramme?
24
2
Welchen Compiler sollten Sie verwenden?
2.1
Borland C++-Compiler
29
2.2
Wie finde ich einen passenden Compiler?
30
2.3
Installation des Borland-Compilers
31
3
Ihr erstes C++-Programm
3.1
Die Lösung vorweggenommen
C++ und Zwischenraumzeichen
35
37
3.2
Von Anfang an
Aufbau von C++-Programmen
Funktionen
#include <iostream>
using namespace std;
39
39
40
43
29
35
44
4
Kompilieren und Ausführen von C++-Programmen
4.1
Was für einen Editor sollten Sie verwenden?
47
47
4.2
Kompilierung
49
4.3
Ausführen der .exe-Datei
Ausführung über den Windows-Explorer
52
53
5
Inhaltsverzeichnis
5
Über Programm(ier)fehler
5.1
Unterscheidung der verschiedenen Fehlerarten
Syntaxfehler
Programmfehler
55
55
57
5.2
Fehlermeldungen »aus Compilersicht«
58
5.3
Historisches
C/C++
ANSI/ISO-Standard
60
60
62
Teil II
Das C++-ABC
6
55
63
6
Kommentare
65
6.1
Einzeilige Kommentare
65
6.2
Mehrzeilige Kommentare
67
6.3
Einsatz von Kommentaren bei der Fehlersuche
70
7
Syntaxregeln
75
7.1
Textbausteine
75
7.2
Anweisungsende
77
7.3
Blöcke
77
7.4
Leerräume
80
7.5
Programmierstil
83
8
Ausgabe mit cout
8.1
Datenströme
85
8.2
C++ unterscheidet zwischen verschiedenen Datentypen
86
8.3
Ausgabeeinheiten aneinander hängen
In der Programmierung gibt es meist mehrere Lösungen
Anweisungen auf mehrere Zeilen verteilen
Verkettung von Strings
89
89
90
91
8.4
Manipulatoren
92
9
Steuerzeichen
95
9.1
Die Escape-Sequenzen \", \' und \\
9.2
ASCII-Code
9.3
Darstellung von Zeichen mittels Escape-Sequenzen
Ausgabe von Umlauten sowie des Zeichens »ß«
101
103
9.4
Das Steuerzeichen \n
104
9.5
Weitere Steuerzeichen
106
85
95
98
Inhaltsverzeichnis
10
111
10.1 Variablen deklarieren
Mehrere Variablen mit einer Anweisung deklarieren
111
113
10.2 Regeln zur Bezeichnerwahl
114
10.3 Zuweisung
Additionsoperator (+)
Initialisierung
string-Variablen
116
121
124
125
10.4 Das Objekt cin
127
10.5 Dreieckstausch
130
11
133
Ausdrücke und Operatoren
11.1 Was ist ein Ausdruck?
Mehrere Zuweisungen hintereinander schalten
Komplexe Ausdrücke
133
134
135
11.2 Arithmetische Operatoren
Der Modulo-Operator
137
138
11.3 Zusammengesetzte Zuweisungsoperatoren
140
11.4 Inkrement- und Dekrementoperatoren
142
11.5 Priorität von Operatoren
145
12
Zahlen mit Nachkommastellen
149
12.1 Die Datentypen double und float
sizeof-Operator
149
150
12.2 Literale zur Darstellung von Zahlen mit Nachkommastellen
152
12.3 Ein Programm zur Berechnung der Mehrwertsteuer
155
12.4 Konstanten mit const deklarieren
159
13
C++
Variablen
Ausgabe mit Manipulatoren formatieren
165
13.1 Standardeinstellungen
Genauigkeit
Ausgabeformat
165
165
168
13.2 Die Manipulatoren setiosflags() und resetiosflags()
172
13.3 Die Manipulatoren fixed und scientific
177
13.4 setprecision()
setprecision() in Verbindung mit Scientific-/Fixed-Format
Anzeige von Nachkommastellen begrenzen
179
182
183
13.5 Feldbreite setzen
Füllzeichen festlegen mit setfill()
Ausgaben linksbündig/rechtsbündig ausrichten mit left/right
185
186
187
7
Inhaltsverzeichnis
14
191
14.1 Welche Datentypen gibt es noch?
Datentypqualifizierer
191
192
14.2 Literale
Literale zur Darstellung von ganzzahligen Werten
Gleitkommaliterale
197
198
201
15
Typumwandlungen
203
15.1 Implizite Typumwandlungen
Konvertierung von char nach int
203
205
15.2 Wann gehen bei der Konvertierung Informationen verloren?
208
15.3 Welchen Datentyp hat ein bestimmter Ausdruck?
Ausdrücke als Operanden des sizeof-Operators
Datentypen werden nicht konvertiert
Reihenfolge der Konvertierungen
char und short
210
213
215
217
219
15.4 Explizite Typumwandlungen
220
16
Verzweigungen
223
16.1 Logische Ausdrücke
Vergleichsoperatoren
Logische Operatoren
Priorität von logischen und Vergleichsoperatoren
223
223
225
229
16.2 Die if-Anweisung
Verschachteln von Kontrollstrukturen
Konvertierung in logischen Ausdrücken
if else
Stringvergleiche
else if
231
235
237
239
241
241
16.3 Die switch-Anweisung
247
16.4 Bedingungsoperator
257
16.5 Zufallszahlen auslosen
259
17
8
Datentypen
Wiederholungsanweisungen
267
17.1 Die while-Schleife
Endlosschleifen
Fakultät berechnen
267
270
271
17.2 Die do while-Schleife
275
17.3 Die for-Schleife
Sequenzoperator
277
284
17.4 Die Anweisungen break und continue
285
Inhaltsverzeichnis
17.5 Gültigkeitsbereich von Variablen
»Lebensdauer« von Variablen
static-Variablen
Namensgleichheit
18
299
18.1 Deklaration von Arrays
299
18.2 Mit Arrays arbeiten
300
18.3 Arrays in for-Schleifen durchlaufen
302
18.4 Initialisierung von Arrays
Die Größe eines Arrays bestimmen mit dem sizeof-Operator
305
307
18.5 Mehrdimensionale Arrays
308
19
313
Strings
19.1 Wie Zeichenketten dargestellt werden
313
19.2 Arrays und Adressen
cin.get()
cout.put()
Die Funktionen getch(), getche(), kbhit()
315
319
323
324
19.3 Funktionen zur Stringverarbeitung
strcmp()
strcpy()
Die Konvertierungsfunktionen atoi(), itoa(), atof()
326
326
328
328
19.4 string-Variablen
Die Methode c_str()
331
333
20
C++
Arrays
288
290
294
296
Funktionen
337
20.1 Funktionen definieren und aufrufen
337
20.2 Funktionsprototypen
Den Quellcode auf mehrere Dateien verteilen
Prototypen von vordefinierten Funktionen
343
346
348
20.3 Funktionsparameter
Wertübergabe
Arrays an Funktionen übergeben
351
356
358
20.4 Rückgabewerte von Funktionen
Rückgabewert von main()
Vorgabeargumente
360
363
364
20.5 Überladen von Funktionen
365
20.6 Rekursionen
367
20.7 inline-Funktionen
370
20.8 Globale Variablen
372
9
Inhaltsverzeichnis
21
Eine Funktionsbibliothek
21.1 Funktion ArrMinIndex()
375
21.2 Funktion sortiereArr()
379
21.3 Funktion doppelte()
382
22
Ein Lottospiel
387
22.1 Im Programm Lottozahlen auslosen
387
22.2 Tippen
391
22.3 Gewinnanzeige
393
Teil III
Einführung in die objektorientierte Programmierung
23
Strukturen
397
399
23.1 Strukturen definieren
399
23.2 Auf die Komponenten von Strukturen zugreifen
404
23.3 Ausblick
410
24
Klassen und Objekte
413
24.1 Methoden
Methoden außerhalb einer Klasse definieren
Den Code von Klassendefinitionen auf mehrere Dateien verteilen
Wie man vermeidet, dass eine Klassendefinition mehrfach
eingebunden wird
413
418
420
24.2 Zugriffsspezifizierer
424
24.3 Konstruktoren und Destruktoren
Überladen von Konstruktoren
Ersatzkonstruktor
431
434
436
24.4 Was es mit Namensräumen auf sich hat
440
25
Statische Elemente einer Klasse
421
443
25.1 Statische Attribute
443
25.2 Statische Methoden
446
26
10
375
Dateioperationen
455
26.1 In Textdateien schreiben
455
26.2 Aus Textdateien lesen
Programm zum Verwalten von (Entenhausener) Bankkunden
461
466
Inhaltsverzeichnis
Teil IV
Fortgeschrittene Programmierkonzepte
27
Präprozessor-Direktiven
477
27.1 #include
477
27.2 Symbolische Konstanten mit #define vereinbaren
478
27.3 Bedingte Kompilierung
479
28
Zeiger
485
28.1 Der Adressoperator (&)
485
28.2 Zeigervariablen deklarieren und verwenden
Wilde Zeiger
Dereferenzierung von Zeigern
Konstante Zeiger
Elementzugriff über Zeiger
487
490
491
493
495
28.3 Zeiger als Parameter von Funktionen
498
28.4 Zeiger als Klassenelemente
500
28.5 Der this-Zeiger von Methoden
502
28.6 Speicherplatz dynamisch anfordern
Arrays dynamisch allozieren
Destruktoren sorgen für die Aufräumarbeiten
504
507
509
29
Referenzen
29.1 Was sind Referenzen?
521
521
29.2 Referenzen als Parameter von Funktionen
524
29.3 Referenzen als Rückgabewerte von Funktionen
526
30
Vererbung
529
30.1 Klassen von Basisklassen ableiten
529
30.2 Zugriff auf die geerbten Elemente einer Basisklasse
private-Vererbung
protected-Vererbung
public-Vererbung
531
531
536
540
30.3 Überschreiben von Methoden
541
31
C++
475
Überladen von Operatoren
547
31.1 Welche Operatoren lassen sich überladen?
548
31.2 Definition von Operatormethoden
Überladen von binären Operatoren
Überladen von unären Operatoren
Überladen eines Vergleichsoperators
548
549
560
566
11
Inhaltsverzeichnis
32
Ausnahmebehandlung
569
32.1 try – catch
Benutzerdefinierte Klassen für die Fehlerbehandlung
Mehrere catch-Handler
569
574
576
32.2 Auffangen von Ausnahmen im Aufrufer
577
Bonusteil
Managed Code; GUI-Programmierung
33
Microsoft und das .NET
581
583
33.1 Microsoft Intermediate Language
583
33.2 Das .NET Framework
585
33.3 Common Language Runtime
Garbage-Collection
Programmieren für .NET
586
587
587
34
Windows-Anwendungen
589
34.1 Windows Forms
Ein neues Projekt beginnen
Das Eigenschaftenfenster im Visual Studio
Weitere Steuerelemente
589
590
593
596
34.2 Steuerelemente mit Code verbinden – Ereignisbehandlungsroutinen
599
ANHANG
A
CD-ROM zum Buch
607
B
Schlüsselwörter in C++
609
C
Prioritätsreihenfolge der C++-Operatoren
611
D
ASCII-Tabelle
613
E
Glossar
615
Stichwortverzeichnis
12
619
Liebe Leserin, lieber Leser!
Vielen Dank, dass Sie sich für dieses Buch entschieden haben. Es sollte Ihnen dazu verhelfen, auf möglichst angenehme Weise ein gutes Stück Weg in der Welt der Programmierung im Allgemeinen und in der von C++ im Besonderen hinter sich zu bringen.
Allerdings ist wie bei den meisten Dingen im Leben auch hierzu etwas Geduld erforderlich. Gerade dem programmierunerfahrenen Leser sei es deshalb nahe gelegt, diese aufzubringen, auch wenn ihm die ersten Kapitel möglicherweise etwas langweilig erscheinen werden (dem Fortgeschrittenen steht es natürlich frei, an einer späteren Stelle mit
dem Lesen zu beginnen).
Ich habe mich grundsätzlich bemüht, die Lerninhalte mit möglichst vielen prägnanten,
aber einfachen Beispielen zu verdeutlichen. Die Lektüre dieses Buches sollte daher auch
ohne unmittelbaren Rechnerkontakt möglich sein (ich selbst gehöre zu den Leuten, die
nicht gerne am Computer sitzen, wenn sie ein Buch lesen). Praktische Übung, zumindest
im Nachhinein, ist natürlich immer anzuraten.
Alle abgedruckten Listings plus erweiterte Beispiele finden Sie, nach Kapiteln geordnet,
als Quellcodedateien und – soweit es sich um größere oder inhaltlich wichtige Programme handelt – samt ausführbarer Datei auf der Buch-CD im Verzeichnis Beispiele.
Speziell das Visual-Studio-Projekt aus Kapitel 34 befindet sich als .zip-Archiv im Unterordner K34.
Die Beispiele können Sie mit dem Borland C++-Compiler kompilieren. Er steht ebenfalls
auf der Buch-CD im Verzeichnis Borland-Compiler zur Verfügung (Dateiname freecommandLinetools.exe). Die Installation und Bedienung ist in Kapitel 2 und 4 beschrieben. Es
sei jedoch darauf hingewiesen, dass Sie genauso gut jeden anderen aktuellen Compiler
verwenden können.
Auf die Abhandlung einiger Fortgeschrittenen-Themen wie beispielsweise Templates
habe ich bewusst – wenn auch nicht ganz ohne schlechtes Gewissen – verzichtet. Als
Gegenleistung sollte der Leser eine gut verständliche Darstellung der behandelten Themen in Händen halten (da diese Beurteilung letzten Endes immer auf persönlicher Einschätzung beruht, möchte ich hiermit der Hoffnung Ausdruck geben, dass mir dies
gelungen ist).
Um aus dem Buch den größtmöglichen Nutzen zu ziehen, empfehle ich Ihnen, sich für
die Lektüre und für das Nachvollziehen der Beispiele Geduld und Zeit zu nehmen.
Eventuell zusätzliche Infos zum Buch sowie gegebenenfalls eine Fehlerliste werde ich
beizeiten auf meiner Webseite http://www.mipueblo.de veröffentlichen. Über die dort angegebene E-Mail-Adresse können Sie mich jederzeit kontaktieren. Für Anregungen und
Hinweise bin ich Ihnen schon jetzt sehr dankbar.
Und nun viel Spaß beim Lesen und viel Erfolg mit der Programmierung.
Walter Saumweber
C++
13
Grundlagen
Dieser einführende Teil soll Ihnen den Einstieg in die Programmierung erleichtern.
Bevor wir uns speziell mit der Programmiersprache C++ befassen, werden wir zunächst
auf allgemeine Aspekte der Programmierung eingehen. Insbesondere werden Sie mit
Fachbegriffen bekannt gemacht, die Ihnen im weiteren Verlauf des Buches immer wieder
begegnen werden. Im Anschluss daran werden Sie ein erstes kleines C++-Programm
erstellen und ausführen, wobei Sie einige Tipps zu Entwicklungswerkzeugen erhalten.
Falls Sie schon einige Programmiererfahrung haben und sich auch die Frage der zu verwendenden Software für Sie nicht stellt, steht es Ihnen natürlich frei, diesen Teil zu überspringen und sogleich mit Teil 2 fortzufahren.
C++
15
Was ist Programmieren?
»… sich um das Entstehen einer ausführbaren Datei zu kümmern.« Diese einfache Antwort ist nahe liegend, da das Endprodukt jeder erfolgreichen Programmentwicklung in
einer solchen (ausführbaren Datei) besteht.
Eine ebenso lapidare – und auch mehr oder weniger korrekte – Erwiderung würde lauten: »Programmieren bedeutet, Text in einen Editor einzugeben.«
Hinweis
Die eigentliche Schwierigkeit liegt natürlich darin, dies syntaktisch und logisch korrekt, effizient und auch für andere Programmierer nachvollziehbar zu tun (Letzteres
wird beim Modifizieren von Programmen bedeutsam). Was das alles genau bedeutet,
werden Sie im Weiteren sehen.
Da eine Textdatei eben nicht ausführbar ist, scheint die zweite Aussage im Widerspruch
zur ersten zu stehen. Lassen Sie uns die Klärung mit einer weiteren Frage einleiten.
1.1
Was ist eigentlich ein Computerprogramm?
Ein ausführbares Programm enthält Befehle, die vom Computer ausgeführt werden. Die
Reihenfolge der Abarbeitung ist dabei durch die Kodierung der Programmdatei festgelegt.
Hinweis
Die Begriffe »Programmdatei«, »ausführbare Datei«, »Programm« und »ausführbares
Programm« werden gleichbedeutend verwendet. Es handelt sich um solche Dateien,
die vom Computer zur Ausführung vorgesehen sind. Dies trifft z.B. für Text- oder
Grafikdateien nicht zu.
Zu den Begriffen »Programm« sowie »ausführbares Programm« werden bezüglich
dieser Definition später noch gewisse Einschränkungen zu nennen sein, die aber hier
keine Rolle spielen.
Programmdateien können auf verschiedene Weise zur Ausführung gelangen. Möglich
ist ein Aufruf aus bereits laufenden anderen Programmen heraus: Programm A startet
Programm B (dieses wiederum Programm C usw.). Einige Programme werden vom
Betriebssystem automatisch beim Start des Computers in Gang gesetzt.
C++
17
1 – Was ist Programmieren?
Am anschaulichsten geschieht dies jedoch durch einen expliziten Startbefehl des
Anwenders – durch einen Doppelklick auf die Programmdatei im Windows-Explorer,
mithilfe einer Verknüpfung (Desktop, Startmenü) oder über einen Befehl in der Konsole
(die bei DOS und Windows als »Eingabeaufforderung« bezeichnet wird).
Wenn Sie beispielsweise mit dem Tabellenkalkulationsprogramm Microsoft Excel arbeiten möchten, werden Sie dieses vermutlich über einen Eintrag im Startmenü oder mittels
eines Symbols auf dem Desktop aufrufen. Da es sich bei beiden um Verknüpfungen zur
entsprechenden Programmdatei handelt, wird diese damit gestartet. Der Name der
Excel-Programmdatei lautet übrigens excel.exe. Sie befindet sich in der Regel im Verzeichnis C:\Programme\Microsoft Office\Office bzw. C:\Programme\Microsoft Office\OFFICE11
oder C:\Programme\Microsoft Office\Office12.
Achtung
Für alle Pfadangaben in diesem Buch gilt: Falls sich bei Ihnen die Dateien bzw. Verzeichnisse auf einem anderen Laufwerk befinden, ersetzen Sie den Laufwerksbuchstaben C durch den jeweiligen Buchstaben.
Eine Programmdatei wird in den meisten Betriebssystemen an der Dateierweiterung
erkannt. Die am häufigsten anzutreffende Erweiterung von ausführbaren Dateien unter
Windows und DOS ist .exe. Unter Unix und Unix-Derivaten wie Linux gibt es für ausführbare Dateien keine vorgeschriebene Erweiterung, die meisten Programme verzichten daher ganz auf eine Erweiterung.
Auch die Resultate Ihrer zukünftigen Bemühungen werden sich vor allem in .exeDateien zeigen (vorausgesetzt, Sie arbeiten mit einem Windows-Betriebssystem).
Wenn also Ihr Computer auf eine Datei mit der Erweiterung .exe trifft, wird er versuchen,
den Inhalt dieser Datei als Befehlsfolge zu verstehen und auszuführen. Wenn dieser Versuch misslingt, wird er dies mit einer Fehlermeldung kundtun.
Hinweis
Genau genommen ist es der Prozessor Ihres Computers, der die Datei zu interpretieren versucht, und der Mittler zwischen Programmdatei und Prozessor ist das
Betriebssystem. Mit anderen Worten, das Betriebssystem reicht .exe-Dateien an den
Prozessor des Computers zur Ausführung weiter.
Was hier am Beispiel von .exe-Dateien geschildert wird, gilt natürlich in Abhängigkeit
vom Betriebssystem ebenso für bestimmte andere Dateierweiterungen – wie oben
erwähnt.
Angenommen, Sie würden eine Textdatei beliebigen (!) Inhalts editieren und diese mit
der Erweiterung .exe speichern. Auf einen entsprechenden Startbefehl hin würde Ihr
Computer auch diese Datei als Programmdatei ansehen. Bleibt die Hoffnung, dass in
diesem Fall alle Interpretationsversuche fehlschlagen, andernfalls würde das nicht vorhersehbare Aktionen zur Folge haben. Es verhält sich dann gewissermaßen so, als ob ein
18
Was ist eigentlich ein Computerprogramm?
Spanier einem Italiener in der irrigen Annahme, es handle sich um einen Landsmann,
Anweisungen erteilt und dabei Worte wählt, die auch im Italienischen vorkommen, nur
eben in ganz anderer Bedeutung.
Hinweis
Aus dem genannten Grund handelt es sich um keinen wirklich ernst gemeinten Vorschlag. Möglicherweise interpretiert Ihr Computer eine Zeichenfolge als »Lösche … «.
Ich empfehle Ihnen also, von solchen Experimenten abzusehen und mir auch so zu
glauben.
Eine Programmdatei ist somit nur dann ausführbar (und verdient auch nur in diesem
Fall, so genannt zu werden), wenn die in ihr enthaltenen Befehle vom Computer verstanden werden können. Das setzt voraus, dass sie in der Sprache des Computers, der so
genannten Maschinensprache, abgefasst sind.
Befehle in Maschinencode sind binärkodiert, das heißt, sie liegen als Folge von Nullen
und Einsen vor:
01101010100101010101110001011100
10101010110101100101100111101011
00101000110101110101100100101010
Der offensichtliche Nachteil von Maschinencode liegt in seiner schlechten Lesbarkeit. Er
lässt sich kaum sinnvoll strukturieren und ist somit nur schwer nachvollziehbar. Hinzu
kommt, dass sich Maschinenbefehle nur schwer aus dem Gedächtnis reproduzieren lassen. Alles zusammengenommen gestaltet sich die Entwicklung eines Programms auf
diese Weise sehr schwierig, ganz zu schweigen von einer eventuellen späteren Überarbeitung.
Wie viel erfreulicher wäre es, wenn ein Computer etwa folgendermaßen kodierte Anweisungen akzeptieren würde:
Nimm eine Eingabe des Anwenders entgegen.
Prüfe, ob die Eingabe als Zahlenwert interpretierbar ist.
Falls nicht, schreibe die Zeichenfolge "Falsche Eingabe" auf den Bildschirm.
…
Nun, ganz so einfach ist es leider nicht (andernfalls würden Sie dieses Buch nicht lesen).
Allerdings lassen sich Wortschatz und Grammatik moderner Programmiersprachen wie
C++ etwa auf einem Niveau zwischen Maschinensprache und dieser gedachten Variante
ansiedeln, was die Sache schon sehr viel angenehmer macht.
Hinweis
Es sei angemerkt, dass nahezu alle Programmiersprachen sich angloamerikanischer
Begriffe bedienen.
C++
19
1 – Was ist Programmieren?
In gewisser Weise erscheint eine Programmiersprache wie C++ sogar eleganter und
unkomplizierter als jede Umgangssprache, da sie über geeignete Schlüsselwörter und
Zeichen verfügt, mit denen sich extrem präzise das formulieren lässt, was man erreichen
möchte – Konfusionen wie in der Alltagssprache sind ausgeschlossen.
1.2
Entwicklungsschritte zum ausführbaren
Computerprogramm
Welche Verbindung besteht nun zwischen der unvermeidbaren Maschinensprache (Nur
diese versteht ja der Computer!) und der Programmiersprache C++? Um dies aufzuzeigen, wollen wir in aller Kürze die Entwicklungsstationen zum fertigen Programm skizzieren, und zwar von Anfang an.
1.2.1
Aufsetzen des Quellcodes
Ursprung jeder fertigen Anwendung ist der so genannte Quellcode. Dieser besteht aus
reinem Text, setzt sich also aus Buchstaben, Zahlen und anderen Zeichen zusammen, die
Ihnen von der Tastatur Ihres PCs her bekannt sein dürften. Der Quellcode (Englisch
»source code«) wird daher auch als »Quelltext« bezeichnet. Vor allem, wenn man nur
einen Teil des Quellcodes meint, spricht man auch kurz von »Code«.
Die Hauptaufgabe für Sie als Programmierer besteht im Erstellen dieses Quellcodes.
Dazu müssen Sie diesen, wie eingangs erwähnt, in einen Editor eingeben, wobei Sie den
Vorgaben der verwendeten Programmiersprache unterworfen sind. Eben das Erlernen
dieser Vorgaben – oder positiv ausgedrückt: Möglichkeiten – der Programmiersprache
C++ bildet das Thema dieses Buches.
Hinweis
Die Bezeichnung »Programm« wird – je nach Sichtweise – nicht nur für die fertige
Anwendung, sondern mitunter auch für den – noch nicht lauffähigen – Quellcode
verwendet. Während der Anwender unter »Programm« in der Regel die ausführbare
Anwendung versteht, meint der Programmierer mit dieser Bezeichnung häufig in erster Linie den von ihm verfassten Quellcode.
1.2.2
Kompilierung
Nichtsdestotrotz ist es letzten Endes erforderlich, dass die ausführbare Programmdatei in
Maschinensprache vorliegt. Es muss also eine binärkodierte Entsprechung des C++Quellcodes hergestellt werden. Das heißt nichts anderes, als dass der Quelltext in Maschinensprache zu übersetzen ist. Dies besorgt eine Software, der so genannte Compiler.
Der Compiler übersetzt (kompiliert) den Quellcode als Ganzes in Maschinensprache
und speichert das Endprodukt in einer eigenen Datei (eben unter Windows mit der
Dateierweiterung .exe). Dies geschieht in verhältnismäßig kurzer Zeit und ohne Ihr wei-
20
Herunterladen