Ниже приведены объявления функций C ++, которые обычно находятся в файле заголовка (.h или .hpp). Эти конкретные объявления не имеют кода. Код находится в определении, показанном ниже.
int sum(int a, int b);
int sum(int a, int b, int c);
int sum(int a, int b, int c, int d);
int sum(int a, int b, int c, int d, int e);
Приведенные выше четыре функции имеют одинаковое имя, но компилятор C ++ вызовет ту, чья сигнатура параметра совпадает с сигнатурой в вызывающем коде. Цель объявления - сообщить компилятору тип возвращаемого значения и сигнатура параметра функции. Если несколько функций имеют одинаковые имена, но отличаются сигнатурой параметров, это называется перегруженной. Это функция C ++, отсутствующая в C. Обратите внимание, что возвращаемый тип нельзя использовать для дифференциации перегруженных функций.
Ниже приведены определения (реализации) перегруженных функций, которые обычно находятся в файле модуля (.cpp или .cc или .cxx). Вот где исполняемый код находится между фигурными скобками {}, которые окружают функциональный блок:
int sum(int a, int b)
{
return (a + b);
}
int sum(int a, int b, int c)
{
return (a + b + c);
}
int sum(int a, int b, int c, int d)
{
return (a + b + c + d);
}
int sum(int a, int b, int c, int d, int e)
{
return (a + b + c + d + e);
}
Пример использования:
std::cout << sum(3, 4, 5) << std::endl;
вызовет код для второй перечисленной выше перегруженной функции, которая принимает три параметра int
.