В C++ две функции могут иметь одно и то же имя, если число и/или тип передаваемых аргументов различаются.
Эти функции с одинаковым именем, но разными аргументами называются перегруженными функциями.
// Program to compute absolute value
// Works for both int and float
#include <iostream>
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;
}
Вывод
Absolute value of -5 = 5 Absolute value of 5.5 = 5.5