Arguments par défaut de programmation C++ (paramètres)
Arguments par défaut de programmation C++ (paramètres)
Dans ce didacticiel, nous apprendrons les arguments par défaut de C++ et leur fonctionnement à l'aide d'exemples.
En programmation C++, nous pouvons fournir des valeurs par défaut pour les paramètres de fonction.
Si une fonction avec des arguments par défaut est appelée sans passer d'arguments, alors les paramètres par défaut sont utilisés.
Cependant, si des arguments sont passés lors de l'appel de la fonction, les arguments par défaut sont ignorés.
Travail des arguments par défaut

Nous pouvons comprendre le fonctionnement des arguments par défaut à partir de l'image ci-dessus :
- Quand
temp()
est appelée, les deux paramètres par défaut sont utilisés par la fonction. - Quand
temp(6)
est appelé, le premier argument devient6
tandis que la valeur par défaut est utilisée pour le second paramètre. - Quand
temp(6, -2.3)
est appelé, les deux paramètres par défaut sont remplacés, ce qui donnei = 6
etf = -2.3
. - Quand
temp(3.4)
est passé, la fonction se comporte de manière indésirable car le deuxième argument ne peut pas être passé sans passer le premier argument.
Par conséquent,3.4
est passé en premier argument. Puisque le premier argument a été défini commeint
, la valeur réellement transmise est3
.
Exemple :Argument par défaut
#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;
}
Sortie
No argument passed: *** First argument passed: ### Both arguments passed: $$$$$
Voici comment fonctionne ce programme :
display()
est appelée sans passer d'arguments. Dans ce cas,display()
utilise les deux paramètres par défautc = '*'
etn = 1
.display('#')
est appelée avec un seul argument. Dans ce cas, le premier devient'#'
. Le deuxième paramètre par défautn = 1
est conservé.display('#', count)
est appelée avec les deux arguments. Dans ce cas, les arguments par défaut ne sont pas utilisés.
Nous pouvons également définir les paramètres par défaut dans la définition de la fonction elle-même. Le programme ci-dessous est équivalent à celui ci-dessus.
#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;
}
Choses à retenir
- Une fois que nous avons fourni une valeur par défaut pour un paramètre, tous les paramètres suivants doivent également avoir des valeurs par défaut. Par exemple,
// 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);
- Si nous définissons les arguments par défaut dans la définition de la fonction au lieu du prototype de la fonction, alors la fonction doit être définie avant l'appel de la fonction.
// Invalid code int main() { // function call display(); } void display(char c = '*', int count = 5) { // code }
Langue C