Hva er overbelastning av operatører?

Overbelastning av operatører er en programmeringsspråkfunksjon for datamaskiner som lar en programmerer overstyre en standardoperatør. Når operatørfunksjonen er overbelastet, kan det erklæres med tilpassede argumenter som er forskjellige datatyper enn hva operatøren var i stand til å håndtere som standard. De nye parameterne kan være primitive eller brukerdefinerte typer. Innen kroppen av den overordnede funksjonen, kan en programmerer manipulere parameterverdiene som ønsket. Ved å bruke overbelastning av operatører kan en programmerer lage intuitive snarveier for å manipulere brukerdefinerte datatyper eller endre hvordan standarddatatyper håndteres.

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

Når en operatør er overbelastet, må kompilatoren ta en beslutning om hva de skal gjøre når den møter en overbelastet operatør. Kompilatoren bestemmer riktig handling å utføre basert på hvilke datatyper som brukes som operander, eller sammen med operatøren. Hvis operandene, som er parameterverdier for 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 opprettelse av nye tilpassede operatører, overbelastning av alle eller noen av dens operatører, eller det er ikke sikkert at de tillater overbelastning av operatører i det hele tatt. C ++, C #, PHP og Perl lar alle noen av deres operatører bli overbelastet. Overbelastning av operatører er ikke tillatt i C, Java og Javascript.

Både overbelastning av operatører og overbelastning av funksjoner generelt har vært gjenstand for en viss debatt. Noen hevder at å gi programmereren frihet 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 å tillate overbelastning av operatører gir programmerere muligheten til å lage intuitiv og kortfattet kode som vil være lettere å forstå, koste mindre å produsere og redusere feil.

ANDRE SPRÅK

Hjalp denne artikkelen deg? Takk for tilbakemeldingen Takk for tilbakemeldingen

Hvordan kan vi hjelpe? Hvordan kan vi hjelpe?