English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
具有相同名称但参数不同的两个或多个函数称为重载函数。在本文中,您将通过示例了解函数重载。
函数是指将代码分组以执行特定任务的代码片段。
在C ++编程中,如果传递的参数的个数或类型不同,则两个函数可以具有相同的名称。
函数具有不同参数个数或类型(或两者兼有)参数的称为重载函数。例如:
int test() { } int test(int a) { } float test(double a) { } int test(int a, double b) { }
In questo caso, tutte e 4 le funzioni sono funzioni sovraccaricate perché i parametri passati a queste funzioni sono diversi.
Attenzione, i tipi di ritorno di queste 4 funzioni non sono gli stessi. Le funzioni sovraccaricate possono avere o non avere tipi di ritorno diversi, ma devono avere parametri diversi.
// Codice di errore int test(int a) { } double test(int b){ }
Anche se i tipi di ritorno sono diversi, ma il numero e il tipo dei parametri passati a queste due funzioni sono gli stessi. Pertanto, il compilatore genererà un errore.
#include <iostream> using namespace std; void display(int); void display(float); void display(int, float); int main() { int a = 5; float b = 5.5; display(a); display(b); display(a, b); return 0; {} void display(int var) { cout << "Intero: " << var << endl; {} void display(float var) { cout << "Numero a virgola mobile: " << var << endl; {} void display(int var1, float var2) { cout << "Intero: " << var1; cout << " e numero a virgola mobile: " << var2; {}
Risultato di output
Intero: 5 Numero a virgola mobile: 5.5 Intero: 5 e numero a virgola mobile: 5.5
In questo caso, la funzione display() è stata chiamata tre volte con diversi tipi o quantità di parametri.
Tutti questi tipi di funzione hanno lo stesso tipo di ritorno, ma non è obbligatorio.
// Il programma calcola il valore assoluto // Valido per interi e numeri a virgola mobile #include <iostream> using namespace std; int absolute(int); float absolute(float); int main() { int a = -5; float b = 5.5; cout << "numero " << a << " della sua assoluta = " << absolute(a) << endl; cout << "numero " << b << " della sua assoluta = " << absolute(b); return 0; {} int absolute(int var) { if (var < 0) var = -var; return var; {} float absolute(float var){ if (var < 0.0) var = -var; return var; {}
Risultato di output
Il valore assoluto del numero -5 = 5 Il valore assoluto del numero 5.5 = 5.5
Nell'esempio precedente, due funzioni absolute() sono sovraccaricate.
Queste due funzioni accettano entrambe un singolo parametro. Tuttavia, una accetta l'integer come parametro, mentre l'altra accetta il float come parametro.
Quando si chiama la funzione absolute() con int come parametro, viene chiamata questa funzione:
int absolute(int var) { if (var < 0) var = -var; return var; {}
Quando si chiama la funzione absolute() con float come parametro, viene chiamata questa funzione:
float absolute(float var){ if (var < 0.0) var = -var; return var; {}