⚡ 1. Natürliche Syntax mit Operator Overloading
In C++ können eigene mathematische Typen wie Vektoren, Matrizen oder Strings mit Standardoperatoren (+, -, ==, <<) ausgestattet werden. Anstelle kryptischer Methodennamen wie v1.add(v2) schreibt man intuitiv v1 + v2. Werden dabei dynamische Ressourcen verwaltet, greift die Rule of Five.
Niemand schreibt in einer Physikformel 'VektorA punkt addiereMit VektorB'. Wir schreiben ganz selbstverständlich a + b. Operator-Überladung erlaubt es dir, die Sprache deiner Domäne direkt in performanten Maschinencode zu gießen.
⚡ 2. C / C++ Quick-Cheat-Sheet
| Syntax / Anweisung | Bedeutung & Funktion |
|---|---|
Vektor2D operator+(const Vektor2D& o) const | Binärer Additionsoperator: Erzeugt ein neues Vektor2D-Objekt per Value. |
bool operator==(const Vektor2D& o) const | Gleichheitsoperator für Wertvergleiche. |
std::ostream& operator<<(std::ostream& os, ...) | Freie Friend-Funktion für direkte Ausgabe über std::cout. |
Rule of Five | Destruktor, Copy-Ctor, Copy-Assign, Move-Ctor, Move-Assign. |
⚠️ 3. Häufige Stolperfallen & Anti-Patterns
Schreibe niemals Vektor2D& operator+() und gib ein lokales Objekt zurück! Dieses wird am Funktionsende zerstört, die zurückgegebene Referenz ist ungültig (Dangling Reference).
Bei operator= muss immer geprüft werden: if (this == &other) return *this;, bevor bestehende Puffer freigegeben werden!
🧠 Diagnostischer Selbst-Check
Überprüfe dein Verständnis zu Speichersicherheit, Syntax und Systems-Design mit gezieltem Feedback: