Указание параметра по умолчанию при вызове функции C ++
Предположим, у меня есть такой код:
void f(int a = 0, int b = 0, int c = 0)
{
//...Some Code...
}
Как вы можете видеть выше с моим кодом, параметрыa
,b
, а также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.