Argumentos padrão de programação C ++ (parâmetros)

Neste tutorial, aprenderemos os argumentos padrão do C ++ e seu funcionamento com a ajuda de exemplos.

Na programação C ++, podemos fornecer valores padrão para parâmetros de função.

Se uma função com argumentos padrão for chamada sem passar argumentos, os parâmetros padrão serão usados.

No entanto, se os argumentos forem passados ​​ao chamar a função, os argumentos padrão serão ignorados.

Trabalho de argumentos padrão

Como os argumentos padrão funcionam em C ++

Podemos entender o funcionamento dos argumentos padrão da imagem acima:

  1. Quando temp()é chamado, os dois parâmetros padrão são usados ​​pela função.
  2. Quando temp(6)é chamado, o primeiro argumento se torna 6enquanto o valor padrão é usado para o segundo parâmetro.
  3. Quando temp(6, -2.3)é chamado, os dois parâmetros padrão são substituídos, resultando em i = 6e f = -2.3.
  4. Quando temp(3.4)é passado, a função se comporta de maneira indesejada porque o segundo argumento não pode ser passado sem passar o primeiro argumento.
    Portanto, 3.4é passado como o primeiro argumento. Como o primeiro argumento foi definido como int, o valor realmente passado é 3.

Exemplo: argumento padrão

 #include using namespace std; // defining the default arguments void display(char = '*', int = 3); int main() ( int count = 5; cout << "No argument passed: "; // *, 3 will be parameters display(); cout << "First argument passed: "; // #, 3 will be parameters display('#'); cout << "Both arguments passed: "; // $, 5 will be parameters display('$', count); return 0; ) void display(char c, int count) ( for(int i = 1; i <= count; ++i) ( cout << c; ) cout << endl; )

Resultado

 Nenhum argumento passado: *** Primeiro argumento passado: ### Ambos os argumentos passados: $$$$$

Veja como funciona este programa:

  1. display()é chamado sem passar nenhum argumento. Nesse caso, display()usa os parâmetros padrão c = '*'e n = 1.
  2. display('#')é chamado com apenas um argumento. Nesse caso, o primeiro se torna '#'. O segundo parâmetro padrão n = 1é mantido.
  3. display('#', count)é chamado com ambos os argumentos. Nesse caso, os argumentos padrão não são usados.

Também podemos definir os parâmetros padrão na própria definição da função. O programa abaixo é equivalente ao anterior.

 #include using namespace std; // defining the default arguments void display(char c = '*', int count = 3) ( for(int i = 1; i <= count; ++i) ( cout << c; ) cout << endl; ) int main() ( int count = 5; cout << "No argument passed: "; // *, 3 will be parameters display(); cout << "First argument passed: "; // #, 3 will be parameters display('#'); cout << "Both argument passed: "; // $, 5 will be parameters display('$', count); return 0; )

Coisas para lembrar

  1. Uma vez que fornecemos um valor padrão para um parâmetro, todos os parâmetros subsequentes também devem ter valores padrão. Por exemplo,
     // Invalid void add(int a, int b = 3, int c, int d); // Invalid void add(int a, int b = 3, int c, int d = 4); // Valid void add(int a, int c, int b = 3, int d = 4);
  2. Se estivermos definindo os argumentos padrão na definição da função em vez do protótipo da função, então a função deve ser definida antes da chamada da função.
     // Invalid code int main() ( // function call display(); ) void display(char c = '*', int count = 5) ( // code )

Artigos interessantes...