Skip to main content

Hva er overbelastning av operatøren?

Overbelastning av operatør er en dataprogrammeringsspråkfunksjon som lar en programmerer overstyre en standardoperatør.Når operatørfunksjonen er overbelastet, kan den deklareres med tilpassede argumenter som er forskjellige datatyper enn hva operatøren var i stand til å håndtere som standard.De nye parametrene kan være primitive eller brukerdefinerte typer.Innenfor kroppen av den overordnede funksjonen kan en programmerer manipulere parameterverdiene etter ønske.Ved å bruke overbelastning av operatør, kan en programmerer lage intuitive snarveier for å manipulere brukerdefinerte datatyper eller endre hvordan standard datatyper håndteres.

Når brukerdefinerte datatyper opprettes, er det ingen måte å gjøre enkle driftsoppgaver, for eksempel å legge til toav dem sammen eller øke interne data ved å bruke Unary Increment -operatøren med datatypen.Operatører, inkludert tilleggssymbolet, kan overstyres slik at hvis de brukes som binære operatører mellom to tilpassede datatyper, returnerer de et brukerdefinert resultat.På samme måte kan en Unary -operatør, som inkrementasjonsoperatøren, bli overstyrt for å øke en intern verdi innenfor den brukerdefinerte typen.

Når en operatør er overbelastet, må kompilatoren ta en beslutning om hva den skal gjøre når den møteren overbelastet operatør.Kompilatoren bestemmer riktig handling å ta basert på hvilke datatyper som brukes som operander, eller i forbindelse med operatøren.Hvis operandene, som er parameterverdier til operatørfunksjonen, er brukerdefinerte datatyper, vil kompilatoren velge den overbelastede funksjonen som har parametere som samsvarer med operandene som brukes.

Dataspråk varierer i hvordan de tillater denne typen ad-hoc polymorfisme.Ulike språk kan tillate å opprette nye tilpassede operatører, overbelastning av alle eller noen av dens operatører, eller kanskje ikke tillater operatøroverbelastning i det hele tatt.C ++, C#, PHP og Perl lar alle noen av operatørene deres bli overbelastet.Overbelastning av operatør er ikke tillatt i C, Java og JavaScript.

Både operatøroverbelastning og funksjon overbelastning generelt har vært gjenstand for en viss debatt.Noen hevder at å gi programmereren friheten til å endre måten en operatør oppfører seg på, kan introdusere potensialet for å skape utilsiktede feil av andre programmerere som bruker den tilpassede koden.Det motsatte synspunktet foreslår at det å tillate operatøroverbelastning gir programmerere muligheten til å lage intuitiv og kortfattet kode som vil være lettere å forstå, koste mindre å produsere og redusere feil.