Schwerpunkt von Teil I ist die Einführung in die Programmiersprache. Die anschließenden Teile gehen darüber hinaus und konzentrieren sich auf die Probleme der täglichen Praxis, wie die Konstruktion grafischer Benutzungsschnittstellen und Tipps und Lösungen für typische Aufgaben.

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.