Wat is de overbelasting van operator?
Operator -overbelasting is een computerprogrammeertaalfunctie waarmee een programmeur een standaardoperator kan negeren. Wanneer de operatorfunctie wordt overbelast, kan deze worden verklaard met aangepaste argumenten die verschillende gegevenstypen zijn dan wat de operator standaard kon afhandelen. De nieuwe parameters kunnen primitieve of door de gebruiker gedefinieerde typen zijn. Binnen het lichaam van de dwingende functie kan een programmeur de parameterwaarden manipuleren zoals gewenst. Door gebruik te maken van de overbelasting van operators, kan een programmeur intuïtieve snelkoppelingen maken voor het manipuleren van door de gebruiker gedefinieerde gegevenstypen of wijzigen hoe standaard gegevenstypen worden afgehandeld.
Wanneer door de gebruiker gedefinieerde gegevenstypen worden gemaakt, is er geen manier om eenvoudige operationele taken uit te voeren, zoals het toevoegen van twee van hen samen of verhogen van de interne gegevens door de unary increment -operator met het gegevenstype te gebruiken. Operators, inclusief het toevoegingssymbool, kunnen worden opgeheven zodat ze worden gebruikt als binaire operators tussen twee aangepaste gegevenstypen, retourneren ze een gebruiker deboete resultaat. Op dezelfde manier kan een unaire operator, zoals de incrementatieoperator, worden opgeheven om een interne waarde binnen het door de gebruiker gedefinieerde type te verhogen.
Zodra een operator overbelast is, moet de compiler een beslissing nemen over wat te doen wanneer hij een overbelaste operator tegenkomt. De compiler bepaalt de juiste actie die moet worden ondernomen op basis van welke gegevenstypen worden gebruikt als operanden of in combinatie met de operator. Als de operanden, die parameterwaarden zijn voor de operatorfunctie, door de gebruiker gedefinieerde gegevenstypen zijn, kiest de compiler de overbelaste functie met parameters die overeenkomen met de gebruikte operanden.
Computtalen variëren in hoe ze dit type ad-hoc polymorfisme mogelijk maken. Verschillende talen kunnen het maken van nieuwe aangepaste operators, het overbelasting van alle of sommige van zijn operators mogelijk maken, of mogelijk helemaal geen overbelasting van operators. C ++, C#, PHP en PerlAllen laten sommige van hun operators overbelast. Operator -overbelasting is niet toegestaan in C, Java en JavaScript.
Zowel de overbelasting van operators als overbelasting van de functie in het algemeen zijn het onderwerp geweest van een debat. Sommigen beweren dat het geven van de programmeur de vrijheid om de manier te veranderen waarop een operator zich gedraagt, het potentieel zou kunnen introduceren voor het creëren van onbedoelde fouten door andere programmeurs die de aangepaste code gebruiken. Het tegengestelde gezichtspunt stelt voor dat het toestaan van overbelasting van de operator programmeurs de mogelijkheid geeft om intuïtieve en beknopte code te maken die gemakkelijker te begrijpen is, minder te produceren en fouten te verminderen.