Che cos'è il sovraccarico dell'operatore?
Il sovraccarico dell'operatore è una funzione del linguaggio di programmazione che consente a un programmatore di sostituire un operatore predefinito. Quando la funzione operatore è sovraccarica, può essere dichiarata con argomenti personalizzati che sono tipi di dati diversi da quelli che l'operatore è stato in grado di gestire per impostazione predefinita. I nuovi parametri possono essere tipi primitivi o definiti dall'utente. All'interno del corpo della funzione prioritaria, un programmatore può manipolare i valori dei parametri come desiderato. Utilizzando il sovraccarico dell'operatore, un programmatore può creare scorciatoie intuitive per manipolare i tipi di dati definiti dall'utente o modificare la modalità di gestione dei tipi di dati predefiniti.
Quando vengono creati tipi di dati definiti dall'utente, non è possibile eseguire semplici operazioni operative, come aggiungerne due insieme o incrementare i dati interni utilizzando l'operatore di incremento unario con il tipo di dati. Gli operatori, incluso il simbolo di aggiunta, possono essere sovrascritti in modo che se vengono utilizzati come operatori binari tra due tipi di dati personalizzati restituiscono un risultato definito dall'utente. Allo stesso modo, un operatore unario, come l'operatore di incremento, potrebbe essere ignorato per aumentare un valore interno all'interno del tipo definito dall'utente.
Una volta che un operatore è sovraccarico, il compilatore deve prendere una decisione su cosa fare quando incontra un operatore sovraccarico. Il compilatore decide l'azione da intraprendere in base a quali tipi di dati vengono utilizzati come operandi o insieme all'operatore. Se gli operandi, che sono valori di parametro per la funzione operatore, sono tipi di dati definiti dall'utente, il compilatore sceglierà la funzione sovraccaricata con parametri che corrispondono agli operandi utilizzati.
I linguaggi informatici variano nel modo in cui consentono questo tipo di polimorfismo ad hoc. Lingue diverse possono consentire la creazione di nuovi operatori personalizzati, il sovraccarico di tutti o di alcuni dei suoi operatori o potrebbero non consentire affatto il sovraccarico degli operatori. C ++, C #, PHP e Perl consentono a tutti i loro operatori di essere sovraccaricati. Il sovraccarico dell'operatore non è consentito in C, Java e Javascript.
Sia il sovraccarico dell'operatore che il sovraccarico delle funzioni in generale sono stati oggetto di alcuni dibattiti. Alcuni sostengono che dare al programmatore la libertà di cambiare il modo in cui un operatore si comporta potrebbe introdurre il potenziale per la creazione di errori involontari da parte di altri programmatori che utilizzano il codice personalizzato. Il punto di vista opposto propone che consentire il sovraccarico dell'operatore offra ai programmatori la possibilità di creare un codice intuitivo e conciso che sarà più facile da capire, meno costoso da produrre e che riduca gli errori.