1. Einführung
1.1 Einleitung
1.1.1 Programmieren lernen in 14 Tagen
1.1.2 Wie man dieses Buch liest
1.1.3 Programmtexte, Lösungen und Glossar zum Download
1.2 Über C++
1.3 Einrichten der Programmierumgebung
2. Das erste Programm: »Hello World«
2.1 Anlegen eines neuen Projekts
2.2 Der Ausgangspunkt eines Programms: main()
2.3 Zwischenspeicher: Variablen und ihre Typen
2.3.1 Zeichenketten
2.3.2 Zahlen
2.3.3 Das Zusammenspiel von Variablen
2.4 Vertippt? Fehler beim Kompilieren beheben
2.5 Verständlicher Code: Schreibstil und Kommentare
2.5.1 Englisch als Programmierstandard
2.5.2 Coding Style
2.5.3 Kommentare
2.6 Übungen
2.6.1 Mehrsprachiges Hello World
2.6.2 Der Papagei
2.6.3 Rechnen mit Ganzzahlen
2.6.4 Fehler im Code
2.6.5 Codeausschnitte
3. Kontrollfluss: Wenn nicht jetzt, wann dann?
3.1 Booleans und if/else: Verzweigungen im Programm
3.2 while: Wiederholen von Anweisungen
3.3 for: Eine Liste durchgehen
3.3.1 Mit Listen arbeiten
3.4 for-each: Vereinfachter Zugriff
3.4.1 Listen erweitern
3.4.2 Strings Zeichen für Zeichen durchgehen
3.5 Initialisierung und Gültigkeitsbereich von Variablen
3.6 switch/case: Eine Liste von Bedingungen
3.7 Die Sache mit der break-Anweisung
3.8 Übungen
3.8.1 Von while zu for übersetzen
3.8.2 Eine Runde rückwärts
3.8.3 Vokalzählung mit switch/case
3.8.4 Bis in alle Ewigkeit
3.8.5 Schleifen ersparen Tipparbeit
3.8.6 Der Quiz-Master
4. Funktionen
4.1 Die Signatur: Aussehen und Schnittstelle einer Funktion
4.2 Referenzen und Konstanten
4.3 Zwischenprojekt: Konzertbuchungssystem
4.4 Rekursion: Russische Holzpüppchen
4.5 Überladen ohne Bußgeld
4.6 Übungen
4.6.1 Integer zu Strings
4.6.2 Join me!
4.6.3 Join me as well!
4.6.4 Wir haben ein Date
4.6.5 Die Suche verbessern
4.6.6 Noch ‘ne Runde rückwärts
5. Die Standard Library und weitere Standardfunktionalitäten
5.1 Textarbeit und Sonderzeichen
5.1.1 Texte kombinieren
5.1.2 Sonderzeichen in Texten
5.2 Texte durchsuchen und aufteilen
5.3 Parsing: Informationen aus Strings extrahieren
5.4 Casten: In andere Typen umwandeln
5.5 Map: Ein weiterer Standardcontainer
5.5.1 Zwischenprojekt: Umlaute mit std::map umwandeln
5.6 Arrays: Container aus der Zeit von C
5.7 Übungen
5.7.1 Lagerregal
5.7.2 Ampel-Lampe
5.7.3 Das Mathegenie
5.7.4 Charakterstudie
5.7.5 Erbsenzähler
6. Objektorientiertes Programmieren: Die Grundlagen
6.1 Die erste Vorstufe: enum
6.2 Die zweite Vorstufe: struct
6.3 Klassen und Objekte
6.4 Methoden in einer Klasse
6.5 Übungen
6.5.1 Schau mir in die Augen
6.5.2 Das Auto
6.5.3 Blockbuster
6.5.4 Beehren Sie uns bald wieder
7. Weiterführende Objektorientierung
7.1 Versteckspiel mit public und private
7.2 Klassenhierarchien
7.3 virtual und override: Virtuelle Methoden
7.4 Const-Methoden
7.5 Übungen
7.5.1 Fuhrpark
7.5.2 Tierhierarchie
7.5.3 Digitales Warenhaus
7.5.4 Preismacht
8. Grafische Oberflächen: GUI-Programmierung
8.1 Bibliotheken mittels vcpkg einbinden
8.2 Ein GUI-»Hello World«
8.3 Callbacks: Auf Klicks reagieren
8.4 Zwischenprojekt: Die Karteikasten-Lerntechnik
8.5 Einen bleibenden Eindruck hinterlassen: Arbeiten mit Dateien
8.6 Programme ausliefern
8.7 Übungen
8.7.1 Die Ausgabe ausschalten
8.7.2 Der An- und Ausschalter
8.7.3 Maus im Haus
8.7.4 Nicht so pedantisch!
9. Fortgeschrittene Konzepte
9.1 Bitte ein Byte: Binärcodierung im Arbeitsspeicher
9.2 Zeiger
9.2.1 Zeiger definieren
9.2.2 Inhalt eines Zeiger auslesen
9.2.3 Speicher wieder freigeben
9.2.4 Zusammenfassung
9.3 … und was man stattdessen benutzt: Smart Pointer
9.4 Exceptions: Mit Fehlern um sich werfen
9.4.1 Besondere Rückgabewerte
9.5 Code auf mehrere Dateien aufteilen
9.6 Übungen
9.6.1 Wie viel Byte?
9.6.2 Zeigerfehler
9.6.3 Wiederholungstäter
9.6.4 Deklarationen und Definitionen
10. Fortgeschrittene Objektorientierung
10.1 Destruktor: Der Lebenszyklus eines Objekts
10.2 Zeiger und virtuelle Methoden
10.3 Abstrakte Klassen
10.4 Übungen
10.4.1 Mit besten Referenzen
10.4.2 Gigafabrik
10.4.3 Teststrecke
11. Das große weite Netz
11.1 Befehle absetzen: Wie man in den Wald hineinruft …
11.2 … so schallt es heraus: Antworten verarbeiten
11.3 JSON: Standardformate verarbeiten
11.4 Zwischenprojekt: Wikipedia-Viewer
11.4.1 Bilder abfragen und anzeigen
11.5 Serialisierung und Deserialisierung
11.6 Übungen
11.6.1 Fehlercodes
11.6.2 Buchladen Jason
11.6.3 Ihr freundlicher Buchladen im Internet
12. Multitasking am Computer
12.1 Berechnungen im Hintergrund: Threads
12.2 Daten zwischen Threads austauschen
12.3 Übung: Schweigen ist Gold
13. Fehlersuche leicht gemacht: Debugging
13.1 printf-Debugging
13.2 Logdateien
13.3 Der Debugger
13.4 Übungen
13.4.1 Logger-Klasse
13.4.2 Breakpoint-Navigation
14. Der Alltag eines Programmierers
14.1 Internetrecherche
14.2 Softwaretesting
14.3 Softwareentwicklung im Team
14.4 Übungen
14.4.1 Test-Driven Test Driver
14.4.2 Verzähl mir nix von User Stories!
14.4.3 Spaziergang