Vad är operatörens överbelastning?

Operator Overloading ä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 förklaras 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 göra enkla operativa uppgifter, till exempel att lägga till två av dem tillsammans eller öka interna data genom att använda UNVERARY INKRESTERING 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 en användare DEböter 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 en överbelastad operatör. Kompilatorn avgör den korrekta åtgärden 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 ad-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 PerlAlla tillåter att några av deras operatörer kan överbelastas. Operatörsöverbelastning är inte tillåtet i C, Java och JavaScript.

Både operatörsöverbelastning och överbelastning av funktionerna 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örens överbelastning ger programmerare förmågan att skapa intuitiv och kortfattad kod som kommer att vara lättare att förstå, kostar mindre att producera och minska fel.

ANDRA SPRÅK

Hjälpte den här artikeln dig? Tack för feedbacken Tack för feedbacken

Hur kan vi hjälpa? Hur kan vi hjälpa?