Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Argumentos Posicionais e Padrão | Especificação de Argumentos de Função
Funções em C++

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

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

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 → retorna 0
  • terminate = 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.

Note
Nota

É 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.

question mark

Qual declaração de função utiliza corretamente argumentos posicionais e padrão?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 1

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 2. Capítulo 1
some-alt