Предположим, у меня есть такой код:
void f(int a = 0, int b = 0, int c = 0)
{
//...Some Code...
}
Как вы можете видеть выше с моим кодом, параметры _2 _, _ 3_ и c
имеют значения параметров по умолчанию 0. Теперь взгляните на мою основную функцию ниже:
int main()
{
//Here are 4 ways of calling the above function:
int a = 2;
int b = 3;
int c = -1;
f(a, b, c);
f(a, b);
f(a);
f();
//note the above parameters could be changed for the other variables
//as well.
}
Теперь я знаю, что я не могу просто пропустить параметр и позволить ему иметь значение по умолчанию, потому что это значение будет оцениваться как параметр в этой позиции. Я имею в виду, что я не могу, скажем, позвонить, f(a,c)
, потому что c
будет оцениваться как b
, чего я не хочу, особенно если c
- неправильный тип. Есть ли способ указать вызывающей функции на C ++, чтобы использовать любое значение параметра по умолчанию для функции в любой заданной позиции, не ограничиваясь переходом назад от последнего параметра к отсутствию? Есть ли какое-либо зарезервированное ключевое слово для этого или, по крайней мере, обходной путь? Я могу привести такой пример:
f(a, def, c) //Where def would mean default.