Мало того, что это возможно, но это очень полезная функция C ++, называемая перегрузкой функций.
Также обратите внимание, что функции, которые имеют одинаковое имя, должны отличаться больше, чем их единственный тип возвращаемого значения, но они могутразличаются только по константности (а это невероятно часто и полезно):
struct A
{
void doSomething() { std::cout << "A" << std::endl; }
void doSomething() const { std::cout << "B" << std::endl; }
// int doSomething(); /* illegal : differs only by return type */
double doSomething(int); /* OK : differs by return type and parameters */
};
int main()
{
A a;
const A constA;
a.doSomething(); // prints "A"
constA.doSomething(); // prints "B"
}