Thomas Theis ist Dipl.-Ing. für Technische Informatik und arbeitet als Berater und Trainer. Seit vielen Jahren gibt er als EDV-Dozent Kurse in verschiedenen Programmiersprachen. Er ist Autor vieler erfolgreicher Fachbücher.
Materialien zum Buch ... 17
1. Eine erste Einführung ... 19
1.1 ... Was machen wir mit C++? ... 19
1.2 ... Was benötige ich zum Programmieren? ... 20
1.3 ... Die Entwicklung von C++ ... 20
1.4 ... So sieht das erste Programm aus ... 21
1.5 ... Kommentieren Sie Ihre Programme ... 22
2. Arbeiten mit Zahlen und Operatoren ... 25
2.1 ... Wie speichere ich Zahlen? ... 25
2.2 ... Rechnen mit Operatoren ... 27
2.3 ... Fehler suchen ... 29
2.4 ... Wie können Daten eingegeben werden? ... 31
2.5 ... Zahlen formatieren mit Manipulatoren ... 33
2.6 ... Zuweisungen kürzer schreiben ... 34
2.7 ... Übung ... 36
2.8 ... Mehr über die Speicherung von Zahlen ... 37
2.9 ... Feste Werte in Konstanten speichern ... 41
2.10 ... Konstanten in Enumerationen zusammenfassen ... 42
2.11 ... Zahlensysteme ... 43
2.12 ... Initialisierung ... 45
2.13 ... Wie erzeuge ich zufällige Zahlen? ... 47
2.14 ... Übung ... 48
3. Mehrere Zweige in einem Programm ... 49
3.1 ... Zwei Zweige mit 'if' und 'else' ... 49
3.2 ... Bedingungen benötigen Vergleiche ... 51
3.3 ... Mehr als zwei Zweige ... 53
3.4 ... Wie kann ich Bedingungen kombinieren? ... 55
3.5 ... Zweige zusammenfassen mit 'switch' und 'case' ... 57
3.6 ... Was ist mit dem Rest? ... 58
3.7 ... Welcher Operator hat Vorrang? ... 59
3.8 ... Übungen ... 60
3.9 ... Wie speichere ich Wahrheitswerte? ... 63
3.10 ... Die Kurzform: der bedingte Ausdruck ... 65
4. Teile von Programmen wiederholen ... 67
4.1 ... Regelmäßige Wiederholungen mit 'for' ... 67
4.2 ... Wiederholungen für einen Bereich ... 70
4.3 ... Bedingte Wiederholungen mit 'do-while' ... 71
4.4 ... Besser vorher prüfen mit 'while' ... 72
4.5 ... Wiederholungen abbrechen oder fortsetzen ... 73
4.6 ... Die Wiederholung der Wiederholung ... 75
4.7 ... Übungen ... 76
5. Programme aufteilen in Funktionen ... 79
5.1 ... So schreibe ich eine eigene Funktion ... 79
5.2 ... Wie übergebe ich Daten? ... 81
5.3 ... Wie erhalte ich ein Ergebnis zurück? ... 87
5.4 ... Mehr Ordnung im Programm ... 88
5.5 ... Statische Variablen behalten ihren Wert ... 90
5.6 ... Fehler suchen ... 91
5.7 ... Übungen ... 92
5.8 ... Standardwerte vorgeben ... 93
5.9 ... Beliebig viele Parameter ... 94
5.10 ... Funktionen mehrfach definieren ... 96
5.11 ... Funktionen, die sich selbst aufrufen ... 98
5.12 ... Anonyme Funktionen ... 99
5.13 ... Funktionen als Parameter ... 105
6. Große Datenmengen speichern in Feldern ... 109
6.1 ... Wie werden Felder unterschieden? ... 109
6.2 ... Einfache Felder mit fester Größe ... 110
6.3 ... Intelligente Felder mit fester Größe ... 111
6.4 ... Ausnahmen behandeln ... 113
6.5 ... Einfache und intelligente Zeiger ... 115
6.6 ... Intelligente Felder mit variabler Größe ... 122
6.7 ... Felder initialisieren ... 124
6.8 ... Felder als Parameter ... 125
6.9 ... Daten in mehreren Dimensionen speichern ... 127
6.10 ... Übungen ... 131
7. Arbeiten mit Zeichen und Texten ... 133
7.1 ... Einzelne Zeichen ... 133
7.2 ... Einfache Zeichenketten ... 134
7.3 ... Intelligente Zeichenketten: Strings ... 137
7.4 ... Wie wandle ich Zahlen in Strings um? ... 143
7.5 ... Wie verarbeite ich Eingaben? ... 144
7.6 ... Felder von Zeichenketten ... 147
7.7 ... Suchen und Ersetzen ... 149
7.8 ... Übungen ... 154
8. Daten in Strukturen zusammenfassen ... 157
8.1 ... Wie speichere ich zusammengehörige Daten? ... 157
8.2 ... Besser einen Typ definieren ... 159
8.3 ... Strukturen und Felder ... 161
8.4 ... Strukturen und Funktionen ... 165
8.5 ... Eine Hierarchie von Strukturen ... 170
8.6 ... Übung ... 172
9. Vorhandene Funktionen nutzen ... 175
9.1 ... Umgang mit Datum und Uhrzeit ... 175
9.2 ... Bessere zufällige Zahlen ... 181
9.3 ... Mehrere Threads zur gleichen Zeit ... 184
9.4 ... Nützliche mathematische Funktionen ... 193
9.5 ... Übungen ... 202
9.6 ... Rechnen mit komplexen Zahlen ... 203
9.7 ... Daten mit dem Betriebssystem austauschen ... 210
9.8 ... Zugriff auf Dateien und Verzeichnisse ... 219
10. Eigene Klassen entwerfen ... 237
10.1 ... Klassen umfassen Eigenschaften und Methoden ... 237
10.2 ... Schützen Sie die Daten ... 240
10.3 ... Wie erzeuge und lösche ich Objekte? ... 244
10.4 ... Statische Elemente einer Klasse ... 248
10.5 ... Wie überlade ich Operatoren? ... 252
10.6 ... Objekte und Felder ... 256
10.7 ... Objekte ausgeben ... 260
10.8 ... Eigenschaften können Objekte sein ... 262
10.9 ... Übungen ... 264
11. Vererbung und Polymorphie ... 269
11.1 ... Basisklasse und abgeleitete Klassen ... 269
11.2 ... Welche Elemente sind an welcher Stelle erreichbar? ... 276
11.3 ... Konstruktoren in abgeleiteten Klassen ... 277
11.4 ... Was bedeutet Polymorphie? ... 281
11.5 ... Erben von mehreren Klassen ... 284
12. Datenströme verarbeiten ... 289
12.1 ... Sequenzielles Schreiben und Lesen ... 289
12.2 ... Schreiben und Lesen an beliebiger Stelle ... 296
12.3 ... Wie leiten Sie Datenströme? ... 305
12.4 ... Wie ist das CSV-Format zum Austausch aufgebaut? ... 308
12.5 ... Übung ... 315
13. Container sind vielfältige Datenstrukturen ... 319
13.1 ... Wie durchlaufe ich Container? ... 320
13.2 ... Intelligente Felder mit fester Größe ... 322
13.3 ... Intelligente Felder mit variabler Größe ... 326
13.4 ... Eine Warteschlange mit zwei Enden ... 330
13.5 ... Daten in Listen verketten ... 334
13.6 ... Drei einfache Container ... 344
13.7 ... Zwei nützliche Typen ... 351
13.8 ... Eine Menge von Elementen ... 355
13.9 ... Schlüssel und Werte in einer Map ... 362
13.10 ... Algorithmen für Bereiche ... 369
13.11 ... Mengenlehre ... 374
13.12 ... Eine Menge von Bits ... 378
14. Mehr zu eigenen Klassen ... 383
14.1 ... Objekte initialisieren, kopieren und erzeugen ... 383
14.2 ... Klassen können Freunde haben ... 386
14.3 ... Namen müssen eindeutig sein ... 389
14.4 ... Fehler behandeln mit Ausnahmen ... 392
14.5 ... Innere Klassen ... 400
14.6 ... Templates sind Vorlagen ... 402
15. Präprozessor-Anweisungen ... 409
15.1 ... Einbinden von Dateien ... 409
15.2 ... Definitionen und Makros ... 410
15.3 ... Definitionen und Verzweigungen ... 412
15.4 ... Eine Systemweiche ... 414
16. Grafische Benutzeroberflächen mit der Qt-Bibliothek ... 417
16.1 ... Die erste GUI-Anwendung ... 418
16.2 ... Ein einfacher Kopfrechentrainer ... 429
16.3 ... Ein erweiterter Kopfrechentrainer ... 434
16.4 ... Weitere Widgets ... 441
17. Datenbanken mit SQLite verwalten ... 449
17.1 ... Der Aufbau einer Datenbank ... 449
17.2 ... Wie erzeuge ich Datenbank und Tabelle? ... 450
17.3 ... Wie speichere ich Daten in einer Tabelle? ... 455
17.4 ... So zeige ich alle Daten einer Tabelle an ... 457
17.5 ... Wie wähle ich bestimmte Daten aus? ... 460
17.6 ... Der Benutzer wählt Daten aus ... 464
17.7 ... Daten sollten sortiert werden ... 465
17.8 ... Wie ändere ich Daten? ... 466
17.9 ... Vorsicht beim Löschen von Daten ... 468
17.10 ... Eine Datenbank mit mehreren Tabellen ... 469
17.11 ... Projekt Vokabeln ... 476
17.12 ... Übung ... 497
Anhang ... 501
A ... Installationen ... 501
B ... Hilfestellungen und Übersichten ... 525
Index ... 531
Mit diesem Buch gelingt Ihnen der Einstieg in die C++-Entwicklung mühelos. Anschauliche Erklärungen, praxisnahe Beispiele und Übungen begleiten Sie von den ersten Schritten bis zum fertigen Programm. Sie lernen alle wichtigen Themen wie Vererbung, Objektorientierung, Polymorphie, GUI-Entwicklung und Datenbanken. Kenntnisse in C oder einer anderen Sprache werden nicht vorausgesetzt.
Aus dem Inhalt:
Die Fachpresse zur Vorauflage:
iX - Magazin für professionelle Informationstechnik: »Wer C++ lernen will oder eine Auffrischung auf C++11 benötigt, dürfte Gefallen an dem knapp 520 Seiten starken Lehrbuch finden.«