Перегрузка функций в C++ позволяет создавать несколько функций с одним именем, но с разными параметрами (тип или количество). Это повышает читаемость и удобство использования кода.
Базовая программа
Рассмотрим функцию Print, выводящую переданный параметр на экран:
void Print(std::string text) {
std::cout << text << std::endl;
}
Вызов Print("Пример"); выведет «Пример».
Проблема несовпадения типов
Функция AddAndPrint складывает два целых числа и пытается вывести результат:
void AddAndPrint(int a, int b) {
int sum = a + b;
Print(sum);
}
Возникает ошибка несовпадения типов, так как Print ожидает строку (std::string), а sum — целое число (int).
Решение с помощью перегрузки
Перегрузка функций решает эту проблему. Создадим две функции Print:
void Print(std::string text) {
std::cout << text << std::endl;
}
void Print(int num) {
std::cout << num << std::endl;
}
Компилятор выберет нужную функцию Print в зависимости от типа аргумента.
Перегрузка с разным количеством параметров
Перегрузка также работает с разным количеством параметров:
void AddAndPrint(int a, int b) {
int sum = a + b;
Print(sum);
}
void AddAndPrint(int a, int b, int c) {
int sum = a + b + c;
Print(sum);
}
Компилятор выберет версию AddAndPrint в зависимости от количества аргументов.
Перегрузка функций — мощный инструмент, позволяющий использовать одно имя для разных функций с различными параметрами. Компилятор определяет вызываемую функцию на основе контекста.