Przeciążenie operatora

Autor: Randy Alexander
Data Utworzenia: 1 Kwiecień 2021
Data Aktualizacji: 1 Lipiec 2024
Anonim
C++ Operator Overloading beginner to advanced (in-depth explanation)
Wideo: C++ Operator Overloading beginner to advanced (in-depth explanation)

Zawartość

Definicja - Co oznacza przeciążenie operatora?

Przeciążanie operatorów jest techniką, za pomocą której operatory używane w języku programowania są implementowane w typach zdefiniowanych przez użytkownika z dostosowaną logiką opartą na typach przekazywanych argumentów.

Przeciążenie operatora ułatwia specyfikację implementacji zdefiniowanej przez użytkownika dla operacji, w których jeden lub oba operandy są klasy lub struktury zdefiniowanej przez użytkownika. Pomaga to typom zdefiniowanym przez użytkownika zachowywać się podobnie jak podstawowe typy danych pierwotnych. Przeciążenie operatora jest pomocne w przypadkach, w których operatory używane dla niektórych typów zapewniają semantykę związaną z konfiguracją domen i wsparciem składniowym w języku programowania. Służy do wygody syntaktycznej, czytelności i łatwości konserwacji.

Java nie obsługuje przeciążania operatora, z wyjątkiem konkatenacji ciągów, dla których przeciąża operatora + wewnętrznie.


Wprowadzenie do Microsoft Azure i Microsoft Cloud | W tym przewodniku dowiesz się, na czym polega przetwarzanie w chmurze i jak Microsoft Azure może pomóc w migracji i prowadzeniu firmy z chmury.

Techopedia wyjaśnia przeciążenie operatora

Operatory są przywoływane za pomocą notacji operatora w wyrażeniach i notacji funkcjonalnej w deklaracjach. Składni, pierwszeństwa i asocjatywności operatora nie można zmienić za pomocą deklaracji operatora zdefiniowanych przez użytkownika.

Na przykład operatorzy w języku C # są podzieleni na kategorie na podstawie rodzaju wykonywanej operacji. Niektóre z nich są przeciążone typami zdefiniowanymi przez użytkownika przez zdefiniowanie ich w statycznych funkcjach członka i użycie słowa kluczowego operator. Parametry funkcji operatora reprezentują operandy, podczas gdy typ zwracany przez funkcję operatora reprezentuje wynik operacji. Przeciążenie jest realizowane parami dla operatorów, takich jak operatory porównania, takie jak „==” i „! =”. Metodę Equals () dla tych operatorów należy zastąpić, aby uniknąć ostrzeżenia kompilatora. Przeciążenie nie powinno być stosowane dla operatorów takich jak warunkowe, logiczne (i !!), przypisanie (+ =, - = itd.), Rzutowanie i indeksowanie tablic ().

Zdecydowanie zaleca się wdrożenie przeciążenia operatora, aby uzyskane wyniki były intuicyjne w stosunku do domyślnej implementacji operatora. Niektóre reguły matematyczne, takie jak prawo przemienne, mające zastosowanie do wyrażeń z dwoma operandami, nie mogą być stosowane, gdy są używane w przypadku przeciążania typów, ponieważ są one zdefiniowane tylko dla operandów numerycznych.