Skip to main content

Vad är operatörens överbelastning?

Överbelastning av operatörer är en datorprogrammeringsspråkfunktion som gör det möjligt för en programmerare att åsidosätta en standardoperatör.När operatörsfunktionen är överbelastad kan den deklareras med anpassade argument som är olika datatyper än vad operatören kunde hantera som standard.De nya parametrarna kan vara primitiva eller användardefinierade typer.Inom kroppen av den övergripande funktionen kan en programmerare manipulera parametervärdena efter önskemål.Genom att använda operatörens överbelastning kan en programmerare skapa intuitiva genvägar för att manipulera användardefinierade datatyper eller ändra hur standarddatatyper hanteras.

När användardefinierade datatyper skapas finns det inget sätt att utföra enkla operativa uppgifter, till exempel att lägga till tvåav dem tillsammans eller ökande interna data genom att använda Unary Increment -operatören med datatypen.Operatörer, inklusive tilläggssymbolen, kan åsidosättas så att om de används som binära operatörer mellan två anpassade datatyper returnerar de ett användardefinierat resultat.På samma sätt kan en unary operatör, som inkrementationsoperatören, åsidosättas för att öka ett internt värde inom den användardefinierade typen.

När en operatör är överbelastad måste kompilatorn fatta ett beslut om vad man ska göra när den möter denen överbelastad operatör.Kompilatorn beslutar rätt åtgärd att vidta baserat på vilka datatyper som används som operander eller i samband med operatören.Om operanderna, som är parametervärden för operatörsfunktionen, är användardefinierade datatyper, kommer kompilatorn att välja den överbelastade funktionen som har parametrar som matchar operanderna som används.

Datorspråk varierar i hur de tillåter denna typ av annons-hoc -polymorfism.Olika språk kan tillåta skapandet av nya anpassade operatörer, överbelastning av alla eller några av dess operatörer, eller kanske inte tillåter operatörsöverbelastning alls.C ++, C#, PHP och Perl tillåter alla att en del av deras operatörer överbelastas.Operatörsöverbelastning är inte tillåtet i C, Java och JavaScript.

Både operatörsöverbelastning och funktionsöverbelastning i allmänhet har varit föremål för en viss debatt.Vissa hävdar att att ge programmeraren friheten att ändra hur en operatör uppför sig kan introducera potentialen för att skapa oavsiktliga fel av andra programmerare som använder den anpassade koden.Den motsatta synvinkeln föreslår att tillåter operatörsöverbelastning ger programmerare möjligheten att skapa intuitiv och kortfattad kod som kommer att vara lättare att förstå, kostar mindre att producera och minska fel.