Hva er operatør Overbelastning?

March 10  by Eliza

Operatør overbelastning er et programmeringsspråk funksjon som gjør at en programmerer til å overstyre en standard operatør. Når operatøren funksjon er overbelastet, kan det bli erklært med tilpassede argumenter som er ulike datatyper enn hva føreren var i stand til å håndtere som standard. De nye parametere kan være primitive eller brukerdefinerte typer. I hoveddelen av den overordnede funksjon, kan en programmerer manipulere parameterverdier som ønsket. Ved å bruke operatør overbelastning, kan en programmerer skape intuitive snarveier for å manipulere brukerdefinerte datatyper eller endre hvordan standard datatyper håndteres.

Når brukerdefinerte datatyper er opprettet, er det ingen måte å gjøre enkle driftsoppgaver, for eksempel legge to av dem sammen eller økes interne data ved hjelp av enhetlige tilvekst operatør med datatypen. Operatører, inkludert tilsetning symbol, kan overstyres, slik at hvis de blir brukt som en binær operatører mellom to tilpassede datatyper de returnerer en brukerdefinert resultat. På samme måte, en enhetlige operatør, som inkrementering operatøren kan overstyres for å øke en intern verdi innenfor den brukerdefinerte type.

Når en operatør er overbelastet, har kompilatoren for å ta en beslutning om hva du skal gjøre når den støter på en overbelastet operatør. Kompilatoren bestemmer de riktige tiltak for å ta ut fra det datatyper blir brukt som operander, eller i forbindelse med, operatøren. Dersom operander, som er parameterverdier til operatørfunksjonen, er brukerdefinerte datatyper, vil kompilatoren velger belastet funksjon som har parametre som samsvarer med operander som brukes.

Programmeringsspråk varierer i hvordan de tillater denne typen ad-hoc polymorfisme. Ulike språk kan tillate etablering av nye tilpassede operatører, overbelastning av alle eller noen av dets operatører, eller kan ikke tillate operatør overbelastning i det hele tatt. C ++, C #, PHP, og Perl alle tillate noen av sine operatører for å bli overbelastet. Operatør overbelastning er ikke tillatt i C, Java og Javascript.

Både operatør overbelastning og funksjon overbelastning generelt har vært gjenstand for en viss debatt. Noen hevder at det å gi programmereren friheten til å endre måten en operatør oppfører kunne introdusere potensial for å skape utilsiktede feil av andre programmerere som bruker tilpasset kode. Motstander synspunkt foreslår at å tillate operatør overbelastning gir programmerere evnen til å skape intuitive og konsis kode som vil være lettere å forstå, koster mindre å produsere, og redusere feil.

  • C ++ gjør noen av sine operatører for å bli overbelastet.