1. Teil I - Einführung in C++

Das Kapitel 1 vermittelt zunächst die Grundlagen, wie ein
Programm geschrieben und zum Laufen gebracht wird. Es folgen einfache
Datentypen und Anweisungen zur Kontrolle des Programmablaufs. Die
Einführung der C++-Datentypen vector und string beendet das
Kapitel. Kapitel 2 beschäftigt sich mit der einfachen Ein- und
Ausgabe, auch mit Dateien. Das Kapitel 3 zeigt Ihnen, wie Sie
Funktionen schreiben. Makros, Templates für Funktionen und die
modulare Gestaltung von Programmen folgen.
Objektorientierung ist der Schwerpunkt von Kapitel 4. Dabei geht es nicht nur um die Konstruktion von Objekten, sondern auch um den Weg von der Problemstellung zu Klassen und Objekten. Zeiger, einfache Arrays (C-Arrays) und Zeichenketten sowie die Erzeugung von Objekten zur Laufzeit sind Inhalt von Kapitel 5. Dazu kommen mehrdimensionale C-Arrays und das Schreiben und Lesen von Binärdaten in bzw. aus Dateien. Auf der Basis von Zeigern führt Kapitel 6 das Thema Objektorientierung fort. Dabei lernen Sie kennen, wie eine String-Klasse funktioniert, und wie Sie Klassen-Templates und Templates mit einer variablen Anzahl von Parametern konstruieren. Das Kapitel 7 zeigt Ihnen das Mittel objektorientierter Sprachen, Generalisierungs- und Spezialisierungsbeziehungen auszudrücken: die Vererbung mit ihren Möglichkeiten, wie zum Beipiel Polymorphismus. Strategien zur Fehlerbehandlung mit Exceptions finden Sie in Kapitel 8. Das Kapitel 9 zeigt, wie Sie Operatorsymbolen wie + und - eigene Bedeutungen zuweisen können und in welchem Zusammenhang das sinnvoll ist. Sie lernen "intelligente" Zeiger (Smart Pointer) zu konstruieren und Objekte als Funktionen einzusetzen. Kapitel 10 beschreibt ausführlich die Ein- und Ausgabemöglichkeiten, die in Kapitel 2 nur einführend gestreift werden, einschließlich der Fehlerbehandlung und der Formatierung der Ausgabe. Eine Einführung in die Standard Template Library (STL) bietet Kapitel 11. Es zeigt, wie die Komponenten (Container, Iteratoren und Algorithmen) zusammenwirken. Die STL und ihre Wirkungsweise bilden die Grundlage eines sehr großen Teils der C++-Standardbibliothek.
Die Kapitel 1 bis 11 sind für ein gutes Verständnis von C++ unverzichtbar. Reguläre Ausdrücke (Kapitel 12) und die Programmierung paralleler Abläufe mit Threads (Kapitel 13) sind dazu nicht notwendig - hier handelt es sich um Ergänzungen, wie sie von vielen Programmiersprachen angeboten werden.
2. Teil II - Bausteine komplexer Anwendungen

Ein Programm benötigt eine Möglichkeit, mit der Außenwelt zu
kommunizieren. Tastatur und Konsole allein reichen für komplexe
Anwendungen in der Regel nicht aus. Mausbedienung und
Bildschirmgrafik sind heute Standard bei Desktop-Anwendungen. Das Kapitel 14 zeigt, wie grafische Benutzungsschnittstellen konstruiert
werden. Wie ein Programm die Verbindung mit dem Internet aufnehmen
kann, dokumentiert das Kapitel 15. Und wohin mit den ganzen
Daten, die bei Programmende nicht verloren gehen sollen? In Kapitel 16 lernen Sie, wie ein Programm an eine Datenbank
angebunden wird.
3. Teil III - Praktische Methoden und Werkzeuge der Softwareentwicklung

Die Entwicklung von Prgrammen besteht nicht nur im Schreiben von Code.
Die Compilation eines Projekts mit vielen Programmdateien und
Abhängigkeiten kann schnell ein komplexer Vorgang werden. Die
Automatisierung dieses Prozesses mit dem Tool make ist Thema
von Kapitel 17. Programme sind nicht auf Anhieb fehlerfrei. Sie
müssen getestet werden: Kapitel 18 stellt ein Werkzeug für den
Unit-Test vor und zeigt den praktischen Einsatz. Kapitel 19
demonstriert ein Werkzeug zur automatischen Dokumentationserstellung,
zeigt, wie eine Versionsverwaltung eingerichtet wird, und geht auf die
Projektverwaltung ein.
4. Teil IV - Das C++-Rezeptbuch: Tipps und Lösungen für typische Aufgaben

Sichere Programmentwicklung ist die Überschrift des Kapitels 20.
Sie finden dort Regeln zum Design von Methoden und mehrere Tipps zur
defensiven Programmierung, die die Risiken falscher Algorithmen oder
falscher Benutzung vermindert. Auch gibt es Tipps zur
exception-sicheren Beschaffung von Speicher und zur
Thread-Programmierung. Kapitel 21 zeigt Rezepte, wie Sie
bestimmte UML-Muster in C++-Konstruktionen umwandeln können. Kapitel 22 erklärt den Unterschied zwischen Wert- und
Referenzsemantik und die Auswirkung auf die Geschwindigkeit von
C++-Programmen. Es werden Empfehlungen gegeben und am Beispiel
konkretisiert, wie die Performanz deutlich verbessert werden kann.
Kapitel 23 erweitert die
Grundlagen des Kapitels 17 um praktische Rezepte zur
automatischen Ermittlung von Abhängigkeiten zwischen Programmdateien,
Makefiles für Verzeichnisbäume, automatische Erzeugung von Makefiles
und das Erzeugen von statischen und dynamischen Bibliotheken.
Algorithmen für viele verschiedene Aufgaben finden Sie in
Kapitel 24. Wegen der Vielzahl empfiehlt sich ein Blick in das
Inhaltsverzeichnis, um einen Überblick zu gewinnen. Der C++-Standard
bietet für viele Datei- und Verzeichnisoperationen keine Unterstützung
an. Kapitel 25 enthält fertige Rezepte zum Anlegen, Löschen und
Lesen von Verzeichnissen und mehr auf der Basis der Boost-Library.
Ergänzt wird dies durch das formatierte Lesen und Schreiben von Daten
und die Abspeicherung binärer Daten als Block.
5. Teil V - Die C++-Standardbibliothek

In mehreren Kapiteln wird die C++-Standardbibliothek in Kürze
beschrieben. Die Inhalte dieses Teils sind: Hilfsfunktionen und -klassen,
Container, Iteratoren, Algorithmen, Einstellung nationaler
Besonderheiten, String, Speicherverwaltung, Funktionen der
Programmiersprache C.
6. Anhang

Der Anhang enthält unter anderem Installationshinweise,
eine Übersicht über die
Neuerungen des C++-Standards
und die Lösungen der Übungsaufgaben.
7. Wo finden Sie was?

Bei der Programmentwicklung wird häufig das Problem auftauchen,
etwas nachschlagen zu müssen. Es gibt die folgenden Hilfen:
Erklärungen zu Begriffen sind im Glossar aufgeführt.
Es gibt ein recht umfangreiches Stichwortverzeichnis und ein sehr detailliertes Inhaltsverzeichnis.
