C++ in einem Satz
C++ ist eine statisch typisierte, kompilierte Programmiersprache, die deinen Quellcode direkt in nativen Maschinencode verwandelt. Diese eine Design-Entscheidung - kein Interpreter, keine virtuelle Maschine zwischen deinem Programm und der CPU - ist der Grund, warum C++ eine der schnellsten Sprachen ist, die du schreiben kannst, und warum es die Software antreibt, die schlicht nicht langsam sein darf.
Hier ist das obligatorische erste Programm. Führe es gleich hier aus:
Hier steckt mehr Struktur als in einer Skriptsprache, und das ist Absicht - C++ gibt dir präzise Kontrolle im Tausch dafür, dass du explizit bist. Wir werden jedes Teil davon auf den nächsten Seiten auseinandernehmen.
Warum C++ schnell ist
Die meisten Skriptsprachen führen deinen Code über einen Interpreter oder eine virtuelle Maschine aus, die Anweisungen zur Laufzeit liest und ausführt. C++ überspringt das alles:
- Ein Compiler (wie
g++oderclang++) liest deinen.cpp-Quellcode und übersetzt ihn in Maschinenbefehle für einen bestimmten Prozessor und ein bestimmtes Betriebssystem. - Das Ergebnis ist eine eigenständige ausführbare Datei, die die CPU direkt ausführt - nichts steht zwischen deinem Code und der Hardware.
Weil während der Programmausführung keine Übersetzung stattfindet, starten C++-Programme sofort und laufen mit voller Prozessorgeschwindigkeit. Außerdem erhältst du feinkörnige Kontrolle über Speicher und Hardware, die höhere Sprachen bewusst vor dir verbergen.
Der Kompromiss: Dieser Maschinencode ist für eine einzige Plattform gebaut. Eine unter Windows kompilierte ausführbare Datei läuft nicht auf einem Mac - du kompilierst den Quellcode für jedes Ziel neu. (Im Gegensatz dazu kompiliert Java zu portablem Bytecode, der auf jeder JVM läuft.)
Statisch typisiert und Multi-Paradigma
Zwei Eigenschaften prägen, wie sich C++-Code anfühlt und aussieht.
Statisch typisiert bedeutet, dass jede Variable einen zur Kompilierzeit bekannten Typ hat und der Compiler deine Typen prüft, bevor das Programm überhaupt läuft:
count ist sein ganzes Leben lang ein int; der Versuch, "hello" darin zu speichern, würde nicht kompilieren. Das fängt eine ganze Klasse von Fehlern früh ab - um den Preis, anfangs mehr tippen zu müssen.
Multi-Paradigma bedeutet, dass C++ dir keinen einzelnen Stil aufzwingt. Du kannst schlichten prozeduralen Code schreiben, Logik in Klassen organisieren (objektorientiert) oder Templates für generischen, wiederverwendbaren Code nutzen. Die meisten echten Programme mischen alle drei. Diese Flexibilität ist mächtig, bedeutet aber auch, dass C++ eine große Lernfläche hat - wir nehmen sie uns Konzept für Konzept vor.
Wofür C++ verwendet wird
C++ taucht überall dort auf, wo Leistung und Kontrolle nicht verhandelbar sind:
- Spiel-Engines - Unreal Engine, der Kern von Unity und der meiste AAA-Spielcode.
- Systemsoftware - Betriebssysteme, Gerätetreiber und Browser wie Chrome und Firefox.
- Hochleistungsdienste - Datenbanken, Handelssysteme und Suchinfrastruktur, bei denen Mikrosekunden zählen.
- Eingebettete Systeme und Hardware - Firmware für Autos, Drohnen, medizinische Geräte und IoT.
Wenn eine Software schnell sein muss, in knappen Speicher passen oder direkt mit der Hardware sprechen muss, stehen die Chancen gut, dass sie in C++ geschrieben ist.
C++ ist nicht C (aber es begann dort)
C++ wuchs in den 1980er-Jahren aus C als „C mit Klassen" hervor und bleibt größtenteils eine Obermenge - viel gültiger C-Code kompiliert als C++. Aber die Sprache ist seitdem enorm gewachsen.
C++ fügt objektorientierte Programmierung, Templates für generischen Code, Referenzen, Ausnahmen und eine reichhaltige Standardbibliothek voller fertiger Werkzeuge hinzu. Dieser Ausschnitt nutzt eines davon, vector - ein größenveränderliches Array, das seinen eigenen Speicher verwaltet, etwas, das du in C von Hand bauen müsstest:
Modernes C++ (die Standards C++11, C++17 und C++20) stützt sich stark auf Werkzeuge wie diese, um die Sprache sicherer und ausdrucksstärker zu machen als ihre C-Wurzeln. Ein häufiger Anfängerfehler ist es, C++ im C-Stil zu schreiben - manueller Speicher, überall rohe Arrays -, obwohl die Standardbibliothek das Problem bereits für dich löst. In dieser Dokumentation bevorzugen wir durchgehend den modernen Stil.
Als Nächstes: C++ installieren
Um C++ auf deiner eigenen Maschine zu schreiben und auszuführen, brauchst du einen Compiler - meist g++ (Teil von GCC), clang++ oder die MSVC-Toolchain unter Windows. Die nächste Seite führt durch die Installation eines davon und die Bestätigung, dass er von deinem Terminal aus funktioniert.
Häufig gestellte Fragen
Wofür wird C++ verwendet?
C++ treibt Software an, bei der Geschwindigkeit und Kontrolle zählen: Spiel-Engines (Unreal, der Kern von Unity), Betriebssysteme, Browser (Chrome, Firefox), Datenbanken, Handelssysteme und eingebettete Geräte. Seine Stärke ist es, hardwarenah zu laufen und dabei trotzdem High-Level-Funktionen wie Klassen, Templates und die Standardbibliothek zu bieten.
Ist C++ kompiliert oder interpretiert?
C++ ist kompiliert. Ein Compiler wie g++ oder clang++ übersetzt deinen Quellcode direkt in nativen Maschinencode für eine bestimmte CPU und ein bestimmtes Betriebssystem und erzeugt eine eigenständige ausführbare Datei. Zwischen deinem Programm und dem Prozessor steht kein Interpreter und keine virtuelle Maschine - genau deshalb ist C++ so schnell.
Was ist der Unterschied zwischen C und C++?
C++ begann als „C mit Klassen" und ist größtenteils eine Obermenge von C, sodass sich der meiste C-Code als C++ kompilieren lässt. Die großen Ergänzungen sind objektorientierte Programmierung (Klassen und Vererbung), Templates, die Standardbibliothek (Container wie vector und map), Referenzen, Ausnahmen und viele Sicherheits- und Komfortfunktionen, die C fehlen.