В 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