Funzioni sovraccaricate (overloaded).
Ma cosa succede se vogliamo aggiungere altri tipi di dati a una funzione già esistente? Ad esempio float. Puoi convertire i tipi di dati quando passi i parametri, ma la funzione restituirà comunque un numero intero. Per rendere la nostra funzione ancora più universale, in C++ puoi sovraccaricare la funzione. Una funzione sovraccaricata è quella definita più volte con lo stesso nome, ma con un diverso tipo restituito e un diverso insieme di parametri.
int a;
float b;
void setup()
{
float c = 5.5;
float d = 0.25;
Serial.begin(9600);
a = sumFunction(10, 20);
Serial.println(a);
a = sumFunction(10, 20, 30);
Serial.println(a);
b = sumFunction(c, d);
Serial.println(b);
}
void loop()
{
}
int sumFunction(int paramA, int paramB)
{
return (paramA + paramB);
}
int sumFunction(int paramA, int paramB, int paramC)
{
return (paramA + paramB + paramC);
}
float sumFunction(float paramA, float paramB)
{
return (paramA + paramB);
}
Quindi, ora abbiamo tre funzioni con lo stesso nome, ma diversi insiemi di parametri e tipi restituiti. Il programma stesso determinerà quale delle funzioni utilizzare, in base ai parametri passati. Passati due parametri float: la terza funzione restituirà un float. Abbiamo passato tre parametri int: abbiamo ottenuto la loro somma usando la seconda funzione consecutiva. Abbiamo passato due parametri int: abbiamo ottenuto la loro somma usando la prima funzione.