Effektives C++: 55 sichere Wege, Ihre Programme zu verbessern
320 Seiten
German
PDF
4.5

Effektives C++: 55 sichere Wege, Ihre Programme zu verbessern

Effektives C++: 55 sichere Wege, Ihre Programme zu verbessern

Autor:

Jahr:

Zusammenfassung:

Einleitung

Das Buch „Effective C++: 55 Specific Ways to Improve Your Programs and Designs“ (auf Deutsch: „Effektives C++: 55 sichere Wege, Ihre Programme zu verbessern“) von Scott Meyers ist nicht nur ein Lehrbuch, sondern ein Nachschlagewerk für jeden, der professionell in C++ programmiert. Es erschien 2005 (dritte Auflage) und ist trotz des Erscheinens von C++11, C++14, C++17 und C++20 bis heute aktuell. Warum? Weil Meyers nicht Syntax lehrt, sondern Denkweise – wie man Fallstricke vermeidet, zuverlässigen, effizienten und wartbaren Code in C++ schreibt.

Das Buch ist als Sammlung von 55 konkreten Regeln (Items) aufgebaut, von denen jede eine eigenständige Lektion ist, untermauert mit Beispielen, Erklärungen und Verweisen auf den Standard. Es ist keine Lektüre „von vorne bis hinten“ (obwohl das auch möglich ist), sondern eher ein Nachschlagewerk für die tägliche Arbeit: die benötigte Regel aufschlagen – sich erinnern, wie man es richtig macht.

Worum geht es in diesem Buch?

Die Hauptidee des Buches ist es zu zeigen, wie man C++ richtig einsetzt. Meyers lehrt nicht die Grundlagen der Sprache (es wird vorausgesetzt, dass der Leser bereits Syntax und grundlegende Konzepte kennt), sondern konzentriert sich auf Idiome, Muster und Feinheiten, die einen durchschnittlichen Programmierer von einem Experten unterscheiden.

Das Buch behandelt die folgenden Themen (nach Abschnitten):

  • Ressourcenverwaltung (Regeln 13–17): RAII, intelligente Zeiger, Vermeidung von Speicherlecks.
  • Konstruktoren, Destruktoren und Zuweisungsoperatoren (Regeln 5–12): wie man Kopieren, Zuweisen und virtuelle Destruktoren korrekt implementiert.
  • Entwurf von Klassen und Schnittstellen (Regeln 18–25): Schnittstellen, die schwer falsch zu verwenden sind, const-correctness, Parameterübergabe.
  • Effizienz (Regeln 26–31): inline, temporäre Objekte, Optimierung.
  • Vererbung und objektorientierte Programmierung (Regeln 32–40): virtuelle Funktionen, Mehrfachvererbung, Schnittstellen.
  • Schablonen und generische Programmierung (Regeln 41–48): Metaprogrammierung, Traits, Policies.
  • Speicherverwaltung (Regeln 49–52): new, delete, placement new.
  • Sonstiges (Regeln 53–55): Kompatibilität mit C, Ausnahmen, Stiltipps.

Für wen ist dieses Buch?

Das Buch richtet sich an Programmierer, die bereits mit C++ vertraut sind und die nächste Stufe erreichen möchten. Wenn Sie gerade erst anfangen, C++ zu lernen, lesen Sie zuerst ein Lehrbuch (z. B. „C++ Primer“ von Lippmann) und nehmen Sie sich dann Meyers vor. Wenn Sie bereits in C++ programmieren und das Gefühl haben, dass Ihr Code „funktioniert, aber irgendwie holprig ist“ – dann ist dieses Buch genau das Richtige für Sie.

Das Buch ist auch nützlich für Entwickler anderer Sprachen (Java, C#, Python), die auf C++ umsteigen und dessen Besonderheiten und Gefahrenstellen verstehen möchten.

Was lernt der Leser?

Nach der Lektüre des Buches werden Sie lernen:

  • Speicherlecks und andere Ressourcenlecks zu vermeiden mit Hilfe von RAII und intelligenten Zeigern.
  • Klassen richtig zu entwerfen: wann ein virtueller Destruktor erstellt wird, wann ein Konstruktor als explicit deklariert wird, wie das Kopieren implementiert wird.
  • Effizienten Code zu schreiben: temporäre Objekte minimieren, inline mit Bedacht einsetzen, zwischen Übergabe per Wert und per Referenz wählen.
  • Mit Vererbung zu arbeiten ohne unangenehme Überraschungen (z. B. warum virtuelle Funktionen im Konstruktor eine schlechte Idee sind).
  • Schablonen zu verwenden, um flexible und typsichere Lösungen zu erstellen.
  • Speicher manuell zu verwalten, wenn nötig (placement new, benutzerdefinierte Allokatoren).
  • C++-Idiome zu verstehen: pimpl, Non-Virtual Interface (NVI), Copy-and-Swap und andere.

Stärken des Buches

1. Praxisorientierung. Jede Regel ist eine k

Empfehlungen