Возможные проблемы
Если две и более функций сданным именем былисопоставлены по самому приоритетному для них правилу, компилятор выдаст сообщение обошибке
Дляисправления ситуации можно использовать явное приведение фактических аргументов кнужнымтипам
Пример
void Print(int number) { printf("%d", number);
}
void Print(double number) {
printf("%.15f", number);
}
int main() {
unsigned int arg = 2; |
|
Print(arg); |
// ошибка |
// OK |
Print(static_cast<int>(arg)); |
return 0;
}
Значенияпараметровпо умолчанию
Некоторыефункциимогутпринимать большепараметров,чемвсамых простыхичастоиспользуемых случаях.
Длягибкогоиспользованияэтих функциймогутприменяться параметрысозначениямипо умолчанию.
Значенияпараметровпо
умолчанию
double calculate(double x, double eps = 0.001){
// Производим вычисления здесь
}
int main()
{
double x = 1.7; calculate(x); calculate(x, 0.01);
return 0;
}
Правилаописания параметровпо умолчанию
Параметры со значениями по умолчанию не могутчередоваться собычными параметрами функции
Параметры со значениями по умолчанию должныбыть последними в описании функции
Функцияможет иметь значения по умолчанию длявсех своих параметров.