Especificando o parâmetro padrão ao chamar a função C ++
Suponha que eu tenha um código como este:
void f(int a = 0, int b = 0, int c = 0)
{
//...Some Code...
}
Como você pode evidentemente ver acima com meu código, os parâmetrosa
,b
ec
tem valores de parâmetro padrão de 0. Agora, veja minha função principal abaixo:
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.
}
Agora eu sei que não posso simplesmente pular um parâmetro e deixá-lo ter o valor padrão, porque esse valor seria avaliado como o parâmetro nessa posição. O que quero dizer é que não posso, digamos, ligar,f(a,c)
, Porque,c
seria avaliado comob
, que é o que eu não quero, principalmente sec
é o tipo errado. Existe uma maneira de a função de chamada especificar em C ++, usar qualquer valor de parâmetro padrão que exista para a função em qualquer posição, sem se limitar a retroceder do último parâmetro para nenhum? Existe alguma palavra-chave reservada para conseguir isso ou pelo menos uma solução alternativa? Um exemplo que posso dar seria o seguinte:
f(a, def, c) //Where def would mean default.