2.11.1 Prototype de fonctions avec des paramètres par défaut

Et je vous le dit, on ne peut mettre des paramètres par défaut que dans le prototype d'une fonction, jamais dans l'implémentation.

Voici comment on définit le prototype d'une fonction avec des paramètres par défaut :

1
void fonctionExemple(int param = 42, const std::string & str = "valeur par défaut");

Voilà, et je me doit de vous faire par d'une petite contrainte :

Tout les paramètres qui suivent un paramètre par défaut doivent aussi être des paramètres par défaut.

En gros, vous n'avez pas le droit d'écrire ça :

1
void fonctionDeTeste(int a, int b = 2, int c, int d);

Vous devez écrire (pour un même résultat) :

1
void fonctionDeTeste(int a, int c, int d, int b = 2);

Ou, si vous voulez garder l'ordre des paramètres :

1
void fonctionDeTeste(int a, int b = 2, int c = 0, int d = 0);

Voilà, maintenant passons à un exemple.