Argumentos Posicionais e Padrão
Deslize para mostrar o menu
Argumentos posicionais
Argumentos posicionais são uma forma de passar valores para uma função em uma ordem específica, baseada na assinatura da função. Os valores são associados aos parâmetros de acordo com suas posições na lista de parâmetros da assinatura da função. A posição de cada argumento determina a qual parâmetro ele corresponde.
main.cpp
1234567891011121314151617181920#include <iostream> // Function that takes two positional arguments float divide(float a, float b) { if (b == 0) return 0; return a / b; } int main() { float x = 8; float y = 4; // Calling the 'divide' function with two positional arguments float result = divide(x, y); std::cout << result << std::endl; }
É possível realizar um pequeno experimento: altere a ordem de passagem dos argumentos para a função (use divide (y, x) em vez de divide(x, y)), e você verá que o resultado mudou. Essa é justamente a essência dos argumentos posicionais: a ordem de passagem dos parâmetros para a função é importante e afeta diretamente seu resultado.
Argumentos padrão
Argumentos padrão permitem atribuir valores padrão aos parâmetros de uma função. Se uma função for chamada sem fornecer todos os argumentos, os ausentes usarão seus valores padrão. Para definir um valor padrão, basta atribuir um valor diretamente na declaração da função.
main.cpp
12345678910111213141516171819202122#include <iostream> // Default value is set for the third parameter float divide(float a, float b, bool terminate = true) { if (b == 0) { if (terminate) return 0; return a / 0.000001; // Prevent crash by using a very small number } return a / b; } int main() { std::cout << divide(10, 2) << std::endl; // Normal division std::cout << divide(10, 0) << std::endl; // Default behavior (error) std::cout << divide(10, 0, false) << std::endl; // Forced division }
A função divide() divide um número por outro.
Se o denominador (b) for zero:
terminate = true→ retorna0terminate = false→ divide por um número muito pequeno para evitar erro
O parâmetro terminate possui valor padrão igual a true, então pode ser omitido. Defina terminate = false para continuar o cálculo em vez de interromper.
É importante que todos os argumentos padrão estejam após os argumentos posicionais na lista de parâmetros. Caso contrário, o compilador exibirá um erro.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo