Quando uma função tem um parâmetro, esse pode já ser definido de uma forma padrão. Isto é, quando a função for chamada, não é necessário colocar nada como argumento porque a própria função já tem um parâmetro padrão.
void printX(int x = 3){ cout << x << endl; } int main(){ printX(); }
Ou seja, terá output
3
Se não forem todos padrão, apenas alguns, apenas os últimos parâmetros (a partir direita) podem ser padrão, porque não há forma de o compiler saber qual é qual.
Isto é, esta função é válida:
int function(int x, int y, int z = 0){ //código }
function(2, 3);
Mas esta função não é válida:
int function(int x = 0, int y, int z){ //código }
Então só é válido se só os parâmetros mais à direita forem padrões. Ou seja, à esquerda de um normal não pode haver um padrão. Todos padrões também é válido.
Referências
Sem comentários:
Enviar um comentário
Comente de forma construtiva...
Nota: só um membro deste blogue pode publicar um comentário.