🛡️ 1. Objektorientierung & das RAII-Paradigma
In C++ ist RAII (Resource Acquisition Is Initialization) das Herzstück robuster Software. Ressourcen (Speicher, Handles, Mutexes) werden im Konstruktor erworben und deterministisch im Destruktor (~Klasse()) freigegeben, sobald das Objekt seinen Gültigkeitsbereich (Scope) verlässt – selbst dann, wenn eine Exception geworfen wird!
Beim Betreten des Zimmers steckst du die Schlüsselkarte in den Schlitz (Konstruktor: Licht und Strom gehen an). Verlässt du das Zimmer, ziehst du die Karte ab (Destruktor: Strom und Licht schalten sich automatisch und garantiert ab, ohne dass du jeden Schalter einzeln suchen musst).
⚡ 2. C / C++ Quick-Cheat-Sheet
| Syntax / Anweisung | Bedeutung & Funktion |
|---|---|
Klasse(int w) : feld(w) {} | Member-Initialisierungsliste: Effiziente direkte Initialisierung vor dem Konstruktorrumpf. |
~Klasse() { /* cleanup */ } | Destruktor: Wird beim Verlassen des Scopes automatisch aufgerufen. |
private: / public: | Strikte Datenkapselung: Private Zustände können nur über Methoden manipuliert werden. |
explicit Klasse(int x); | Verhindert unerwünschte implizite Typkonvertierungen bei Ein-Argument-Konstruktoren. |
⚠️ 3. Häufige Stolperfallen & Anti-Patterns
Schreibst du feld = w; im Rumpf, wird erst der Default-Konstruktor und dann der Zuweisungsoperator gerufen. Bei const-Feldern oder Referenzen scheitert die Kompilierung komplett!
Wirft ein Konstruktor eine Exception, wird der Destruktor dieses halbfertigen Objekts NICHT aufgerufen! Kapsele Ressourcen daher in Smart Pointern oder RAII-Unterobjekten.
🧠 Diagnostischer Selbst-Check
Überprüfe dein Verständnis zu Speichersicherheit, Syntax und Systems-Design mit gezieltem Feedback: