Вопрос проверяет понимание концепции перегрузки функций в языках программирования, позволяющей определять несколько функций с одинаковым именем, но разными параметрами.
Перегрузка функций (function overloading) — это механизм, позволяющий объявить несколько функций с одинаковым именем, но разными параметрами. Компилятор или интерпретатор определяет, какую именно функцию вызвать, на основе типов, количества или порядка аргументов. Это одна из форм статического полиморфизма, которая решается на этапе компиляции.
При вызове перегруженной функции компилятор анализирует сигнатуру вызова (типы и количество аргументов) и сопоставляет её с объявленными вариантами. Если найдено точное совпадение, вызывается соответствующая реализация. Если совпадений несколько или нет ни одного, возникает ошибка компиляции.
#include <iostream>
using namespace std;
void print(int i) {
cout << "Integer: " << i << endl;
}
void print(double f) {
cout << "Float: " << f << endl;
}
void print(string s) {
cout << "String: " << s << endl;
}
int main() {
print(10); // Integer: 10
print(3.14); // Float: 3.14
print("Hello"); // String: Hello
return 0;
}Перегрузка функций упрощает код, делая его более интуитивным и избавляя от необходимости придумывать разные имена для похожих операций. Она особенно полезна при работе с разнородными данными, но требует аккуратности, чтобы избежать неоднозначностей.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию