Sovraccarico di funzioni C ++ (con esempi)

In questo tutorial, impareremo il sovraccarico di funzioni in C ++ con esempi.

In C ++, due funzioni possono avere lo stesso nome se il numero e / o il tipo di argomenti passati è diverso.

Queste funzioni con lo stesso nome ma argomenti diversi sono note come funzioni di sovraccarico. Per esempio:

 // same name different arguments int test() ( ) int test(int a) ( ) float test(double a) ( ) int test(int a, double b) ( )

Qui, tutte e 4 le funzioni sono funzioni in sovraccarico.

Si noti che i tipi restituiti di tutte queste 4 funzioni non sono gli stessi. Le funzioni sovraccaricate possono o non possono avere tipi restituiti diversi ma devono avere argomenti diversi. Per esempio,

 // Error code int test(int a) ( ) double test(int b)( )

In questo caso, entrambe le funzioni hanno lo stesso nome, lo stesso tipo e lo stesso numero di argomenti. Quindi, il compilatore genererà un errore.

Sovraccarico delle funzioni utilizzando diversi tipi di parametri

 // Program to compute absolute value // Works for both int and float #include using namespace std; // function with float type parameter float absolute(float var)( if (var < 0.0) var = -var; return var; ) // function with int type parameter int absolute(int var) ( if (var < 0) var = -var; return var; ) int main() ( // call function with int type parameter cout << "Absolute value of -5 = " << absolute(-5) << endl; // call function with float type parameter cout << "Absolute value of 5.5 = " << absolute(5.5f) << endl; return 0; )

Produzione

 Valore assoluto di -5 = 5 Valore assoluto di 5,5 = 5,5
Lavoro di sovraccarico per la funzione absolute ()

In questo programma, sovraccarichiamo la absolute()funzione. In base al tipo di parametro passato durante la chiamata alla funzione, viene chiamata la funzione corrispondente.

Sovraccarico delle funzioni utilizzando un numero diverso di parametri

 #include using namespace std; // function with 2 parameters void display(int var1, double var2) ( cout << "Integer number: " << var1; cout << " and double number: " << var2 << endl; ) // function with double type single parameter void display(double var) ( cout << "Double number: " << var << endl; ) // function with int type single parameter void display(int var) ( cout << "Integer number: " << var << endl; ) int main() ( int a = 5; double b = 5.5; // call function with int type parameter display(a); // call function with double type parameter display(b); // call function with 2 parameters display(a, b); return 0; )

Produzione

 Numero intero: 5 Numero Float: 5.5 Numero intero: 5 e numero doppio: 5.5

Qui, la display()funzione viene chiamata tre volte con argomenti diversi. A seconda del numero e del tipo di argomenti passati, display()viene chiamata la funzione corrispondente .

Lavoro di sovraccarico per la funzione display ()

Il tipo di ritorno di tutte queste funzioni è lo stesso, ma non è necessario che sia il caso del sovraccarico delle funzioni.

Nota: in C ++, molte funzioni della libreria standard sono sovraccariche. Ad esempio, la sqrt()funzione può assumere double, float, int,ecc come parametri. Ciò è possibile perché la sqrt()funzione è sovraccarica in C ++.

Articoli interessanti...