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:
- Sprachgrundlagen
- Referenzen und Pointer
- Objektorientierte Programmierung
- Vererbung und Polymorphie
- Moderne Bibliotheken: chrono, random, thread, filesystem
- Arbeiten mit Containern
- GUI-Entwicklung mit Qt
- Datenbanken mit SQLite verwalten
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. «
Inhaltsverzeichnis
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