More Exceptional C++
272 Seiten
German
PDF
4.5

More Exceptional C++

More Exceptional C++

Autor:

Jahr:

Zusammenfassung:

Einleitung

Das Buch „More Exceptional C++“ (2001) ist die Fortsetzung der berühmten Aufgabensammlung von Herb Sutter, einem der führenden Experten für die Sprache C++. Während das erste Buch „Exceptional C++“ die Grundlage für ein tiefes Verständnis von Ausnahmen, Speicherverwaltung und Klassendesign legte, hebt der zweite Teil die Messlatte noch höher. Hier bietet der Autor 40 neue Aufgaben (Items), die in thematische Abschnitte unterteilt sind und sowohl klassische Probleme (Ausnahmesicherheit, RAII, Idiome) als auch fortgeschrittenere Themen abdecken: STL-Optimierung, Feinheiten der Vererbung, Templates und sogar Fragen der Multithreading (im Kontext von C++98/03). Das Buch ist im Frage-Antwort-Format geschrieben: Zuerst wird eine Aufgabe gestellt, dann folgt eine detaillierte Analyse mit Code, Bewertung und Schlussfolgerungen. Es ist kein Lehrbuch für Anfänger – es ist eine Sammlung von Rätseln für diejenigen, die bereits sicher in C++ programmieren und typische Fallstricke vermeiden möchten.

Worum es in dem Buch geht

Das Hauptthema ist die Ausnahmesicherheit und die korrekte Ressourcenverwaltung. Sutter erläutert Schritt für Schritt, wie man Code schreibt, der bei Ausnahmen nicht „leckt“, wie man die RAII-Idiom (Resource Acquisition Is Initialization) verwendet und wie man Klassen entwirft, die gegenüber teilweisen Operationen robust sind. Das Buch behandelt außerdem:

  • Regeln für die Überladung von Operatoren (insbesondere operator= und operator[]);
  • Feinheiten der Arbeit mit STL-Containern (std::vector, std::list, std::map);
  • Die Idiome „pimpl“ (pointer to implementation) und „copy-and-swap“;
  • Probleme der Mehrfachvererbung und virtuellen Basisklassen;
  • Code-Optimierung mit Templates und Strategien (policy-based design);
  • Fehlerbehandlung in Konstruktoren und Destruktoren.

Jedes Kapitel enthält konkrete Codebeispiele, die sofort in realen Projekten angewendet werden können. Sutter gibt nicht nur fertige Lösungen, sondern erklärt auch, warum andere Ansätze falsch sind und welche Konsequenzen sie haben können.

Für wen ist dieses Buch geeignet

Das Buch richtet sich an erfahrene C++-Entwickler, die bereits mit Syntax, Klassen, Vererbung und Templates vertraut sind. Es ist nützlich für:

  • Programmierer, die an hochzuverlässigen Systemen arbeiten (Finanzen, Telekommunikation, eingebettete Systeme);
  • Entwickler von Bibliotheken und Frameworks, bei denen die Stabilität der API wichtig ist;
  • Fortgeschrittene Studenten und Doktoranden, die fortgeschrittene C++-Konzepte studieren;
  • Alle, die ihre Fähigkeiten im Debugging und Refactoring von komplexem Code verbessern möchten.

Anfängern wird das Buch schwer erscheinen – es ist besser, mit „Exceptional C++“ oder „Effective C++“ von Scott Meyers zu beginnen.

Was der Leser lernen wird

Nach der Lektüre werden Sie in der Lage sein:

  • Ausnahmesicherheit auf drei Ebenen zu gewährleisten (basic, strong, nothrow);
  • Zuweisungs- und Kopieroperatoren korrekt zu implementieren;
  • Speicher- und Ressourcenlecks in Konstruktoren zu vermeiden;
  • Die Nutzung von STL-Containern zu optimieren (z. B. unnötige Kopien zu vermeiden);
  • Die „copy-and-swap“-Idiom anzuwenden, um einen zuverlässigen operator= zu schreiben;
  • Zu verstehen, wann virtuelle Vererbung und wann Komposition verwendet werden sollte;
  • Klassen unter Berücksichtigung möglicher Ausnahmen in Destruktoren zu entwerfen.

Stärken

Der Hauptvorteil des Buches ist seine praktische Ausrichtung. Jede Aufgabe wird von echtem Code begleitet, der kompiliert und getestet werden kann. Sutter scheut sich nicht, falsche Varianten zu zeigen und zu erklären, warum sie gefährlich sind. Der zweite Pluspunkt ist die Struktur: Das Buch ist in kleine Kapitel (2–5 Seiten) unterteilt, sodass man es in Häppchen lesen und zu komplexen Themen zurückkehren kann. Drittens liegt der Schwerpunkt auf der Ausnahmesicherheit, die auch nach 20 Jahren noch aktuell ist: Modernes C++ (C++11/14/17/20) hat neue Werkzeuge hinzugefügt (Move-Semantik, unique_ptr, optional), aber die von Sutter dargelegten Grundprinzipien sind nicht veraltet. Schließlich macht der lebendige Stil des Autors, mit einer Prise Humor und Selbstironie, das Lesen

Empfehlungen