Speicher & Ressourcen
Meistere das Besitzmodell von C++ — von rohen Zeigern über Smart Pointer bis zur Verschiebesemantik — und schreibe Code, der nie leckt.
Zeiger & Referenzen
Zeiger: Adressen, Dereferenzierung & Arithmetik
Verstehe Zeiger als Speicheradressen, lerne den Adress- und den Dereferenzierungsoperator kennen, arbeite mit Zeigerarithmetik in Arrays, achte auf const-Korrektheit bei Zeigern und erfahre, wann rohe Zeiger im modernen C++ noch angebracht sind.
Referenzen: Lvalue, Rvalue & Fallstricke
Erkunde Lvalue- und Rvalue-Referenzen, verstehe die Wertkategorien von C++, lerne die Regeln des Reference Collapsing und Forwarding-Referenzen kennen und vermeide Fehler durch baumelnde Referenzen.
Dynamischer Speicher: new, delete & ihre Gefahren
Lerne, wie dynamische Allokation mit new und delete funktioniert, verstehe die Gefahren von Speicherlecks, doppeltem Freigeben und Zugriff nach dem Freigeben, und erfahre, warum moderner C++-Code kein einziges rohes new/delete enthalten sollte.
Smart Pointer
std::unique_ptr: exklusiver Besitz
Lerne, wie std::unique_ptr exklusiven Besitz ohne jeden Overhead bietet, wie du make_unique einsetzt, eigene Deleter für C-Ressourcen schreibst und Factory-Funktionen idiomatisch gestaltest.
shared_ptr, weak_ptr & Besitzgraphen
Verstehe referenzgezählten geteilten Besitz mit shared_ptr, brich Zyklen mit weak_ptr auf, lerne Kontrollblöcke und den Aliasing-Konstruktor kennen und erkenne, wann shared_ptr die falsche Wahl ist.
Verschiebesemantik & RAII
Verschiebesemantik & std::move
Verstehe, welches Problem die Verschiebesemantik löst, warum std::move nur ein Cast und kein Verschieben ist, wie du Verschiebekonstruktor und Verschiebezuweisung implementierst und warum noexcept für die Performance von Containern entscheidend ist.
Perfect Forwarding mit std::forward
Verstehe, warum benannte Rvalue-Referenzen Lvalues sind, lerne das kanonische Weiterleitungsmuster mit std::forward kennen und sieh, wie emplace_back mit variadischer Weiterleitung Objekte direkt an Ort und Stelle konstruiert.
RAII: das grundlegende Ressourcenmuster
Lerne RAII (Resource Acquisition Is Initialization) kennen — das zentrale C++-Muster für ausnahmesichere Ressourcenverwaltung. Implementiere eigene RAII-Wrapper, verstehe lock_guard und scoped_lock und erfahre, warum RAII-Typen nur verschiebbar oder referenzgezählt sein dürfen.