Was ist das Überladen des Bedieners?

Das Überladen von Operatoren ist eine Funktion der Computerprogrammiersprache, mit der ein Programmierer einen Standardoperator überschreiben kann. Wenn die Operatorfunktion überladen ist, kann sie mit benutzerdefinierten Argumenten deklariert werden, die andere Datentypen haben als die, mit denen der Operator standardmäßig umgehen konnte. Die neuen Parameter können primitive oder benutzerdefinierte Typen sein. Innerhalb des Körpers der übergeordneten Funktion kann ein Programmierer die Parameterwerte wie gewünscht manipulieren. Durch das Überladen von Operatoren kann ein Programmierer intuitive Verknüpfungen zum Bearbeiten benutzerdefinierter Datentypen erstellen oder die Behandlung von Standarddatentypen ändern.

Wenn benutzerdefinierte Datentypen erstellt werden, gibt es keine Möglichkeit, einfache operative Aufgaben wie das Hinzufügen von zwei oder das Inkrementieren interner Daten mithilfe des unären Inkrementierungsoperators mit dem Datentyp auszuführen. Operatoren, einschließlich des Hinzufügungssymbols, können überschrieben werden, sodass sie ein benutzerdefiniertes Ergebnis zurückgeben, wenn sie als binäre Operatoren zwischen zwei benutzerdefinierten Datentypen verwendet werden. Ebenso kann ein unärer Operator wie der Inkrementierungsoperator überschrieben werden, um einen internen Wert innerhalb des benutzerdefinierten Typs zu erhöhen.

Sobald ein Operator überladen ist, muss der Compiler entscheiden, was zu tun ist, wenn er auf einen überladenen Operator stößt. Der Compiler entscheidet anhand der Datentypen, die als Operanden oder in Verbindung mit dem Operator verwendet werden, welche Aktion er ausführen soll. Wenn es sich bei den Operanden, die Parameterwerte für die Operatorfunktion sind, um benutzerdefinierte Datentypen handelt, wählt der Compiler die überladene Funktion mit Parametern, die den verwendeten Operanden entsprechen.

Computersprachen unterscheiden sich darin, wie sie diese Art von Ad-hoc-Polymorphismus zulassen. Verschiedene Sprachen können das Erstellen neuer benutzerdefinierter Operatoren, das Überladen aller oder einiger Operatoren oder das Überladen von Operatoren überhaupt nicht zulassen. Mit C ++, C #, PHP und Perl können einige ihrer Operatoren überladen werden. Das Überladen von Operatoren ist in C, Java und Javascript nicht zulässig.

Sowohl das Überladen von Bedienern als auch das Überladen von Funktionen im Allgemeinen waren Gegenstand einiger Debatten. Einige behaupten, dem Programmierer die Freiheit zu geben, das Verhalten eines Bedieners zu ändern, könnte dazu führen, dass andere Programmierer, die den benutzerdefinierten Code verwenden, unbeabsichtigte Fehler verursachen. Der gegenteilige Standpunkt besagt, dass Programmierer durch das Ermöglichen einer Überladung von Bedienern intuitiven und präzisen Code erstellen können, der einfacher zu verstehen, kostengünstiger zu produzieren und Fehler zu reduzieren ist.

ANDERE SPRACHEN

War dieser Artikel hilfreich? Danke für die Rückmeldung Danke für die Rückmeldung

Wie können wir helfen? Wie können wir helfen?