Inhaltsverzeichnis:
Definition - Was bedeutet Operator Overloading?
Das Überladen von Operatoren ist eine Technik, mit der Operatoren, die in einer Programmiersprache verwendet werden, in benutzerdefinierten Typen mit angepasster Logik implementiert werden, die auf den übergebenen Argumenttypen basiert.
Überladen von Operatoren erleichtert die Angabe einer benutzerdefinierten Implementierung für Operationen, bei denen einer oder beide Operanden vom benutzerdefinierten Klassen- oder Strukturtyp sind. Dies hilft benutzerdefinierten Typen, sich ähnlich wie die grundlegenden primitiven Datentypen zu verhalten. Das Überladen von Operatoren ist hilfreich, wenn die für bestimmte Typen verwendeten Operatoren eine Semantik im Zusammenhang mit dem Domänenkontext und der syntaktischen Unterstützung in der Programmiersprache bereitstellen. Es wird für syntaktische Bequemlichkeit, Lesbarkeit und Wartbarkeit verwendet.
Java unterstützt das Überladen von Operatoren nicht, mit Ausnahme der Zeichenfolgenverkettung, bei der der Operator + intern überladen wird.
Techopedia erklärt das Überladen von Operatoren
Operatoren werden mit Operator-Notation in Ausdrücken und funktionaler Notation in Deklarationen referenziert. Die Syntax, Rangfolge und Assoziativität eines Operators kann nicht mit benutzerdefinierten Operatordeklarationen geändert werden.
Beispielsweise werden Operatoren in C # basierend auf der Art der von ihnen ausgeführten Operation kategorisiert. Einige von ihnen sind in benutzerdefinierten Typen überladen, indem sie in statischen Elementfunktionen und mit dem Operatorschlüsselwort definiert werden. Die Parameter der Operatorfunktion stellen die Operanden dar, während der Rückgabetyp einer Operatorfunktion das Ergebnis der Operation darstellt. Das Überladen wird paarweise für Operatoren implementiert, z. B. Vergleichsoperatoren wie "==" und "! =". Die Equals () -Methode für diese Operatoren sollte überschrieben werden, um eine Compilerwarnung zu vermeiden. Das Überladen darf nicht für Operatoren wie Bedingt, Logisch (und !!), Zuweisung (+ =, - = usw.), Casting und Array-Indizierung () verwendet werden.
Es wird dringend empfohlen, das Überladen von Operatoren so zu implementieren, dass die erzielten Ergebnisse den intuitiven Erwartungen der Standardimplementierung des Operators entsprechen. Bestimmte mathematische Regeln wie das Kommutativgesetz, die für Ausdrücke mit zwei Operanden gelten, können beim Überladen von Typen nicht angewendet werden, da sie nur für numerische Operanden definiert sind.