Argumentos padrão de programação C++ (parâmetros)
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
Podemos entender o funcionamento dos argumentos padrão da imagem acima:
- Quando
temp()
é chamado, ambos os parâmetros padrão são usados pela função. - Quando
temp(6)
é chamado, o primeiro argumento se torna6
enquanto o valor padrão é usado para o segundo parâmetro. - Quando
temp(6, -2.3)
é chamado, ambos os parâmetros padrão são substituídos, resultando emi = 6
ef = -2.3
. - 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 comoint
, o valor que é realmente passado é3
.
Exemplo:argumento padrão
#include <iostream>
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;
}
Saída
No argument passed: *** First argument passed: ### Both arguments passed: $$$$$
Veja como este programa funciona:
display()
é chamado sem passar nenhum argumento. Nesse caso,display()
usa ambos os parâmetros padrãoc = '*'
en = 1
.display('#')
é chamado com apenas um argumento. Nesse caso, o primeiro se torna'#'
. O segundo parâmetro padrãon = 1
é retido.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 acima.
#include <iostream>
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
- Depois de fornecermos 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);
- Se estivermos definindo os argumentos padrão na definição da função em vez do protótipo da funçã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 }
Linguagem C