Schnellkurs C++
Schnellkurs C++
Zusammenfassung:
Einleitung
Das Buch „Accelerated C++: Practical Programming by Example“ (auf Deutsch: „Schnellkurs C++“) von Andrew Koenig und Barbara Moo ist nicht nur ein weiteres Lehrbuch über eine Programmiersprache. Es ist ein Manifest eines neuen Ansatzes zum Erlernen von C++, der sich grundlegend von klassischen Bänden wie Bjarne Stroustrups „Die C++-Programmiersprache“ unterscheidet. Das Buch erschien im Jahr 2000 und ist bis heute eine der effektivsten Einführungen in C++ für diejenigen, die bereits in anderen Sprachen (Java, Python, C#) programmieren können.
Die Autoren sind anerkannte Experten in der C++-Welt: Andrew Koenig war eines der ersten Mitglieder des C++-Standardisierungskomitees, und Barbara Moo ist Co-Autorin mehrerer Bücher und langjährige Redakteurin. Ihr Ziel war ehrgeizig: Sie wollten lehren, von Anfang an echten, modernen C++ zu schreiben, unter Umgehung veralteter Praktiken und „nacktem“ C-ähnlichem Code.
Worum geht es in diesem Buch?
Im Gegensatz zu traditionellen Lehrbüchern, die mit Datentypen, Schleifen und Funktionen beginnen, taucht „Accelerated C++“ den Leser sofort in die Arbeit mit der Standardbibliothek (STL) ein. Das erste Programm verwendet bereits vector, string und iostream. Die Autoren gehen davon aus, dass der Leser bereits mit grundlegenden Programmierkonzepten (Variablen, Bedingungen, Schleifen) vertraut ist, und verschwenden daher keine Zeit mit der Erklärung dieser Grundlagen.
Das Buch ist beispielbasiert aufgebaut. Jedes Kapitel ist ein vollständiges Programm, das eine bestimmte Aufgabe löst: von der Wortzählung bis zur Bildbearbeitung. Nach und nach, von Kapitel zu Kapitel, werden neue Konzepte eingeführt: Iteratoren, Algorithmen, Container, Klassen, Templates, Speicherverwaltung. Am Ende des Buches beherrscht der Leser nicht nur die Syntax, sondern versteht auch die Philosophie von C++: RAII, Ausnahmen, Copy-and-Swap-Idiom.
Für wen ist dieses Buch?
Das Buch richtet sich an erfahrene Programmierer, die C++ schnell und gründlich lernen möchten. Wenn Sie bereits mit Java, Python oder C# gearbeitet haben und für Systemprogrammierung, Spiele oder Hochlastanwendungen auf C++ umsteigen möchten, ist dies die richtige Wahl. Für Anfänger, die gerade erst mit dem Programmieren beginnen, ist das Buch zu anspruchsvoll und zu schnell.
Was lernt der Leser?
- Standardbibliothek (STL): Container (
vector,list,map), Iteratoren, Algorithmen (sort,find,copy). - Arbeit mit Strings und Ein-/Ausgabe:
string,iostream, Dateistreams. - Objektorientierte Programmierung in C++: Klassen, Kapselung, Vererbung, Polymorphie.
- Templates: Schreiben von generischem Code, Template-Funktionen und -Klassen.
- Speicherverwaltung: Smart Pointer (
shared_ptr– im Buch wirdauto_ptrverwendet, was veraltet ist, aber das Konzept ist korrekt), RAII, Vermeidung von Speicherlecks. - Ausnahmebehandlung: Sicherer Code, Ausnahmegarantien.
- C++-Idiome: Copy-and-Swap, Pimpl, RAII-Idiom.
- Programmdesign: Aufteilung in Module, Header-Dateien, Namensräume.
Stärken des Buches
1. Praxisorientierung. Jedes Kapitel enthält ein vollständiges Beispiel, das sofort ausgeführt und modifiziert werden kann. Die Theorie wird genau in dem Umfang vermittelt, der zum Verständnis des Beispiels notwendig ist.
2. Modernes C++ (für seine Zeit). Das Buch lehrt die Verwendung der STL, anstatt das Rad neu zu erfinden. Die Autoren vermeiden konsequent veraltete Konstrukte (z. B. C-style Arrays, rohe Pointer für Speicherverwaltung).
3. Logische Struktur. Der Stoff wird spiralförmig präsentiert: Zuerst einfache Beispiele, dann werden sie komplexer, neue Details kommen hinzu. Dies ermöglicht eine schrittweise Steigerung der Komplexität ohne Überlastung.
4. Fokus auf Idiome. Im Buch werden nicht nur die Sprachkonstrukte erklärt, sondern auch die dahinterstehenden Idiome und Best Practices.