Rezension der 1. Auflage von Florian Potschka, auch in der iX-Ausgabe vom Februar 2010, Seite 155, in gekürzer Form erschienen.
Die zweite Auflage dieses Buchs unterscheidet sich von der ersten
im Wesentlichen
durch Aktualisierungen im Verlauf der Entwicklung des neuen ISO
C++-Standards, der Ende 2011 veröffentlicht werden soll.
Auf 985 Seiten gibt es nicht nur die
bewährte didaktisch ansprechende und fachlich überzeugende Einführung
in die Sprache, sondern auch im Teil 4 Das C++ Rezeptbuch
zahlreiche Tipps und Lösungen für typische Aufgaben, die in der
täglichen Praxis anfallen.
Für Einsteiger
Dieses Buch ist für alle geschrieben, die einen kompakten und verständlichen Einstieg in die Konzepte und die Programmierung mit C++ suchen. Ob Sie C++ lernen oder Ihre Kenntnisse in der Softwareentwicklung mit C++ vertiefen wollen, in diesem umfassenden Tutorial und Nachschlagewerk finden Sie, was Sie brauchen. Es ist für Anfänger gedacht, die noch keine Programmiererfahrung haben, sich aber beruflich mit C++ beschäftigen wollen oder werden, zum Beispiel Studenten technischer Fächer. Auch Programmierer, die diese Programmiersprache kennenlernen oder ihre Kenntnisse vertiefen möchten, profitieren von dem Buch. C-Kenntnisse werden nicht vorausgesetzt. Das Buch führt systematisch in die Sprache ein. Die vielen Beispiele sind leicht nachzuvollziehen. Klassen und Objekte, Templates, STL und Exceptions sind bald keine Fremdworte mehr. Die klare Umsetzung der C++-Designprinzipien sorgt für effektive, wartbare und performante Programme.
Übungsaufgaben und Lösungen
Zur Vertiefung des Verständnisses gibt es 86 Übungsaufgaben mit Musterlösungen. Es gibt einfache, mittelschwere und schwierige Aufgaben - für fast jeden Anspruch ist etwas dabei. C++ hat selbst viele mathematische Elemente; darauf wird aber kein Schwerpunkt gelegt. So sind etwa vier Fünftel der Aufgaben ohne mathematischen Bezug. Im verbleibenden Fünftel erfordern nur etwa vier oder fünf Basiswissen der Oberstufe, der Rest kommt mit weniger aus. Falls mal eine Aufgabe als zu schwierig empfunden wird: überspringen oder in der Musterlösung nachsehen.
Für fortgeschrittene Anfänger und Profis
Es gibt konkrete, sofort verwendbare Lösungsvorschläge zur defensiven Programmierung, zur Exception-sicheren Programmierung, zur Vermeidung von Memory-Problemen, zur Performance-Verbesserung und zur automatisierten Programm- und Bibliothekserzeugung. Es sind zahlreiche Algorithmen für praxisnahe Problemstellungen vorhanden, unter anderem zur Bearbeitung von Texten und zur Arbeit mit Verzeichnissen und Dateien. Kurze Einführungen in die Programmierung mit Threads, Netzwerk-Programmierung einschließlich eines kleinen Webservers, Datenbankanbindung, und grafische Benutzungsoberflächen gehören dazu. Cross-Plattform-Entwicklung: Durch Einsatz der Boost-Library und des Qt-Frameworks wird größtmögliche Portabilität erreicht. Entwicklungen des neuen C++-Standards werden mit konkreten Beispielen, auch solchen, die die Performance-Verbesserung belegen, berücksichtigt (variadic templates, moving constructor u.a.m.).
Softwareentwicklung ist nicht nur Programmierung: Unter anderem werden die Automatisierung der Programmerzeugung mit Make, die Dokumentationserstellung mit Doxygen, Unit-Tests und die Versionskontrolle mit Subversion behandelt, mit ausführlich erklärten Beispielen. Das Programmdesign wird durch konkrete Umsetzungen von UML-Mustern nach C++ unterstützt.
Einsteigern und C++-Erfahrenen dient das Buch als ausführliches
Nachschlagewerk. Alle im Buch angegebenen Beispiele laufen mit dem
frei erhältlichen GNU-C++-Compiler. Es gibt ihn sowohl für
Linux als auch für Windows. Als erste Entwicklungsumgebung wird
Code::Blocks empfohlen.
Entwicklungsumgebung, Compiler, alle Beispiele, die Lösungen zu den
Aufgaben sowie weitere Software für die Programmentwicklung
finden Sie auf der DVD zum Buch. Die Beispiele und Lösungen
finden Sie ebenfalls hier.
Falls Sie das Buch gekauft haben: Lesen Sie bitte die Errata! Falls Sie einen dort noch nicht aufgeführten Fehler entdecken, bin ich für einen Hinweis dankbar (bitte E-Mail an breymann (at) hs-bremen.de).
