RAII und Ausnahmesicherheit
Resource Acquisition Is Initialization (RAII) ist ein zentrales C++-Konzept. Ressourcen sind an die Lebensdauer von Objekten gebunden; sie werden im Konstruktor angefordert und im Destruktor freige…
Snippet öffnen →Lies diese C++-Snippets für Fortgeschrittene Zeile für Zeile — jedes kommt mit einer Erklärung, was der Code tut und warum.
Resource Acquisition Is Initialization (RAII) ist ein zentrales C++-Konzept. Ressourcen sind an die Lebensdauer von Objekten gebunden; sie werden im Konstruktor angefordert und im Destruktor freige…
Snippet öffnen →Wenn man in C++ ein Objekt einer abgeleiteten Klasse über einen Basisklassen-Zeiger löscht, ist das Verhalten undefiniert, sofern die Basisklasse keinen virtuellen Destruktor hat. Das Schlüsselwort…
Snippet öffnen →Die Move-Semantik ermöglicht es, Ressourcen (wie Heap-Speicher) von einem Objekt auf ein anderes zu übertragen, anstatt sie zu kopieren. std::move wandelt ein Objekt in einen R-Value um, sodass der…
Snippet öffnen →std::unique_ptr ist ein intelligenter Zeiger, der ein anderes Objekt besitzt und verwaltet und dieses Objekt löscht, sobald der unique_ptr den Gültigkeitsbereich verlässt. Er kann nicht kopiert, so…
Snippet öffnen →Lambdas sind anonyme Funktionen, die inline definiert werden können. Die Capture-Klausel '[]' ermöglicht es dem Lambda, auf Variablen aus dem umgebenden Bereich zuzugreifen, entweder als Kopie oder…
Snippet öffnen →Statische Elemente werden von allen Instanzen einer Klasse gemeinsam genutzt. Es gibt nur eine Kopie eines statischen Elements, unabhängig davon, wie viele Objekte erstellt werden.
Snippet öffnen →Die Template-Spezialisierung ermöglicht es Ihnen, eine benutzerdefinierte Implementierung eines Templates für einen bestimmten Datentyp zu definieren und so die generische Version zu überschreiben.
Snippet öffnen →Die Operatorüberladung ermöglicht es Ihnen, das Verhalten von Standardoperatoren wie + oder - bei der Verwendung mit Ihren eigenen Klassen neu zu definieren.
Snippet öffnen →Elementinitialisierungslisten werden in Konstruktoren verwendet, um Klassenelemente zu initialisieren, bevor der Konstruktorrumpf ausgeführt wird, was effizienter ist als eine Zuweisung.
Snippet öffnen →Das Schlüsselwort mutable erlaubt es, ein bestimmtes Element einer Klasse zu ändern, selbst wenn auf das Objekt über eine const-Referenz oder innerhalb einer const-Memberfunktion zugegriffen wird.
Snippet öffnen →