Часто бывает удобно, чтобы функции, реализующие один и тот же алгоритм для различных типов данных, имели одно и то же имя. Использование нескольких функций с одним и тем же именем, но с различным количеством и различными типами параметров, называется перегрузкой функций.
Рассмотрим пример.
#include …
void simline(); // прототипы
void simline(char);
void simline(char, int);
int main() {
simline();
simline('=');
simline('+', 30);
getch(); return 0;
}
//---------функция выводит на экран 45 символов '*'
void simline() {
for(int j=0; j<45; j++) // цикл, выполняющийся 45 раз
cout << '*'; // вывод символа '*'
cout << endl;
}
//---------функция выводит 45 заданных символов
void simline(char ch) {
for(int j=0; j<45; j++) // цикл, выполняющийся 45 раз
cout << ch; // вывод заданного символа
cout << endl;
}
//---------функция выводит заданный символ заданное число раз
void simline(char ch, int n) {
for(int j=0; j<n; j++) // цикл, выполняющийся n раз
cout << ch; // вывод заданного символа
cout << endl;
}
В программе содержатся три функции с одинаковым именем. Компилятор различает эти три функции по количеству аргументов и их типам.