Programmiersprache C++
Programmiersprache C++
Zusammenfassung:
Einleitung
Das Buch „Die Programmiersprache C++“ (Originaltitel The C++ Programming Language) ist nicht nur ein weiteres Lehrbuch. Es ist ein grundlegendes Werk, geschrieben vom Schöpfer der Sprache – Bjarne Stroustrup. Die vierte Auflage, erschienen im Jahr 2013, behandelt den Standard C++11, der einen wichtigen Meilenstein in der Entwicklung der Sprache darstellte und viele moderne Möglichkeiten hinzufügte: Lambda-Ausdrücke, intelligente Zeiger, Move-Semantik, neue Container und vieles mehr. Der Umfang des Buches – 1366 Seiten – spricht für sich: Vor Ihnen liegt eine Enzyklopädie, die die langjährige Erfahrung des Autors und die Entwicklung der Sprache in einer einheitlichen, schlüssigen Darstellung zusammenfasst.
Dieses Buch ist nicht für eine flüchtige Durchsicht gedacht. Es erfordert aufmerksames Lesen, belohnt den Leser jedoch mit einem tiefgreifenden Verständnis dafür, wie C++ funktioniert und warum es genau so aufgebaut ist. Auf der Website PythonLib sprechen wir oft über Python, aber die Kenntnis von C++ öffnet die Augen dafür, wie Programmiersprachen „unter der Haube“ funktionieren, und hilft dabei, effizienteren Code in jeder Sprache zu schreiben, einschließlich Python (insbesondere wenn es um das Schreiben von Erweiterungen in C++ oder die Optimierung kritischer Bereiche geht).
Worum geht es in diesem Buch?
Das Buch ist in mehrere logische Teile gegliedert, die den Leser schrittweise in die Welt von C++ einführen:
- Einführung und Grundlagen: Der Autor beginnt mit grundlegenden Konzepten – Typen, Variablen, Ausdrücke, Operatoren, Kontrollstrukturen. Aber selbst hier spürt man die Hand des Meisters: Die Erklärungen sind präzise, prägnant und ohne überflüssige Füllwörter.
- Objektorientierte Programmierung: Klassen, Vererbung, Polymorphismus, virtuelle Funktionen. Stroustrup listet nicht nur die Syntax auf, sondern erklärt, wie man Klassenhierarchien richtig entwirft, damit der Code flexibel und wartbar ist.
- Standardbibliothek (STL): Container (vector, map, unordered_map), Iteratoren, Algorithmen, Funktionsobjekte. Der Autor zeigt, wie man die STL nutzt, um effizienten und sicheren Code zu schreiben und manuelle Speicherverwaltung dort zu vermeiden, wo es möglich ist.
- Moderne Möglichkeiten von C++11: Lambda-Ausdrücke, Move-Semantik, Rvalue-Referenzen, intelligente Zeiger (unique_ptr, shared_ptr, weak_ptr), Multithreading (thread, mutex, future). Dies ist wohl der wertvollste Teil für diejenigen, die modernes C++ schreiben möchten.
- Fortgeschrittene Themen: Templates (einschließlich variadischer Templates und Metaprogrammierung), Ausnahmebehandlung, Ein-/Ausgabe, Lokalisierung sowie eine Diskussion des Sprachdesigns und seiner Philosophie.
Für wen ist dieses Buch?
Das Buch richtet sich an ein breites Publikum, eignet sich aber am besten für:
- Erfahrene C- und C++-Programmierer, die ihr Wissen systematisieren und sich über die Neuerungen von C++11 informieren möchten.
- Entwickler anderer Sprachen (Java, C#, Python), die C++ gründlich lernen und verstehen möchten, wie Low-Level-Mechanismen funktionieren.
- Fortgeschrittene Studenten und Doktoranden, die sich mit Systemprogrammierung, Spieleentwicklung, hochbelastbaren Diensten oder eingebetteten Systemen befassen.
- Dozenten, die eine autoritative Quelle für die Vorbereitung von C++-Kursen suchen.
Anfängern, die gerade mit dem Programmieren beginnen, mag das Buch zu komplex und umfangreich erscheinen. Sie sollten besser mit leichteren Einführungen beginnen, z. B. mit dem Buch „Programmierung: Prinzipien und Praxis mit C++“ desselben Autors, und erst dann zu diesem Band übergehen.
Was lernt der Leser?
Nach der Lektüre des Buches werden Sie in der Lage sein:
- Sicheren und effizienten Code in modernem C++ (C++11 und neuer) zu schreiben.
- Zu verstehen, wie der Compiler, der Linker und das Speichermodell von C++ funktionieren.
- Die Standardbibliothek zur Lösung typischer Aufgaben zu nutzen, ohne das Rad neu zu erfinden.
- Objektorientierte und generische Programmierung in der Praxis anzuwenden.
- Mit Multithreading und Synchronisation zu arbeiten.
Empfehlungen
Swift (iOS/macOS) und Microservices: Von der mobilen App zum verteilten System
Vorstellungsgespräch C# (.NET): 200 Fragen und Antworten
C++ und Mikroservices: Entwicklung hochlastiger Systeme
Architektur von C++-Anwendungen: Vom Projekt bis zur Produktion
C# (.NET): Tipps und Best Practices
The C# Player’s Guide (Das C#-Spielerhandbuch)