Pesquisar aqui

quarta-feira, 22 de janeiro de 2020

C++ - Funções - Parâmetros padrão


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();
}
O parâmetro padrão é x = 3. Então quando a função for chamada e não lhe dermos um argumento, a função vai funcionar com x = 3.

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
}
Porque é possível chamá-la com dois argumentos, assim, por exemplo:
function(2, 3);
Onde z = 0.

Mas esta função não é válida:
int function(int x = 0, int y, int z){
    //código
}
Porque se fôssemos chamá-la da mesma forma, estaríamos a atribuir um valor a x, a y, mas não a z.

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:

Publicar um comentário

Comente de forma construtiva...

Nota: só um membro deste blogue pode publicar um comentário.