Skip to main content

Cos'è il sovraccarico di funzioni?

Il sovraccarico di funzioni è una caratteristica di molti linguaggi di programmazione in cui è possibile creare più metodi con lo stesso nome ma con diversi parametri di input o tipi di restituzione.Questa è una caratteristica comune nella programmazione orientata agli oggetti;I costruttori in particolare possono avere diverse varianti sovraccarichi.In sostanza, il sovraccarico delle funzioni è utile quando due funzioni fanno cose molto simili e possono prendere più tipi di input per farlo.I costruttori possono essere sovraccarichi facilmente perché non hanno un tipo di ritorno esplicito specificato, quindi semplicemente modificare i parametri di input di un costruttore sarebbe un sovraccarico valido.

Il primo modo in cui una funzione può essere sovraccarica è modificando i suoi parametri di input.Ad esempio, si può considerare una funzione chiamata ADD che richiede come input due numeri interi.Lo scopo di questa funzione è abbastanza ovvio;Ha lo scopo di trovare la somma di due numeri interi.

Se si volesse trovare la somma di due galleggianti o numeri decimali, tuttavia, questa funzione non sarebbe applicabile.Quindi, sarebbe necessaria una seconda funzione sovraccaricata, definita come una funzione chiamata ADD che richiede come input due carri.Le funzioni sono essenzialmente la stessa cosa, ma il sovraccarico delle funzioni è necessario perché i loro input sono significativamente diversi.

Il secondo modo in cui una funzione può essere sovraccarica è di modificare sia i suoi parametri di input che il suo tipo di ritorno.Utilizzando l'esempio precedente, si può considerare se entrambe le funzioni di aggiunta sovraccarico avevano un tipo di ritorno vuoto;Cioè, non hanno restituito nulla.Questo sarebbe comunque un sovraccarico di funzioni valido, ma i tipi di ritorno dei due metodi potrebbero anche essere modificati.In un'altra valida istanza di sovraccarico, la funzione ADD che assume due numeri interi potrebbe restituire quella somma dei numeri interi e la funzione ADD che assume due numeri decimali potrebbe restituire quella somma del numero decimale.

La semplice modifica del tipo di ritorno di una funzione, tuttavia, non è considerato il sovraccarico di funzioni valido.La modifica solo del tipo di ritorno di una funzione si traduce in ambiguità, poiché non è chiaro dalla firma del metodo che si desidera il tipo di ritorno.I parametri possono anche essere definiti ambiguamente, quindi è molto importante che le funzioni sovraccaricano vengano chiamate correttamente.Ad esempio, se si ha una funzione sovraccarica che ha un numero intero come parametro di input e un altro che ha un numero decimale come parametro, sarebbe molto facile per qualcuno chiamare accidentalmente la funzione del numero decimale anziché la funzione del numero interoo viceversa, perché hanno lo stesso nome.Parametri ambigui come questi dovrebbero essere evitati se possibile, e se non possono essere, si dovrebbe prestare grande attenzione per garantire che la funzione corretta sovraccarica sia chiamata nei tempi corretti. Il sovraccarico della funzione è utile per creare funzioni correlate con vari tipi di inpute offre a codice molta flessibilità.Un'ultima considerazione sulle funzioni sovraccarichi è che i commenti adeguati sono essenziali.Sebbene possa essere chiaro da parametri di input differanti quale versione di una funzione sovraccarica è giusta per una situazione particolare, potrebbe non essere sempre chiaro esattamente cosa fa la funzione in modo diverso dagli altri partner sovraccarichi.