Utiliser les paramètres par défaut pour les fonctions en C++

Jinku Hu 12 octobre 2023
  1. Utiliser les paramètres par défaut pour définir une fonction en C++
  2. Utiliser les paramètres par défaut pour implémenter le constructeur de classe en C++
Utiliser les paramètres par défaut pour les fonctions en C++

Cet article explique plusieurs méthodes d’utilisation des paramètres par défaut pour les fonctions en C++.

Utiliser les paramètres par défaut pour définir une fonction en C++

Le concept de paramètres par défaut permet d’avoir des valeurs d’argument par défaut spécifiées dans une définition de fonction utilisée au cas où l’utilisateur ne passerait aucun argument à leur place. Ainsi, les fonctions peuvent avoir des arguments optionnels, qui en interne peuvent utiliser une valeur par défaut pour initialiser certains objets pendant le bloc fonction. Les paramètres par défaut sont spécifiés dans un prototype de fonction après chaque nom d’argument à l’aide du symbole = et de la valeur correspondante. Par exemple, l’extrait de code suivant implémente un modèle de fonction sumNumbers qui peut totaliser quatre nombres au maximum. Néanmoins, l’utilisateur n’est pas obligé de fournir les quatre valeurs. Au contraire, seuls deux entiers suffisent pour l’opération.

#include <iostream>
#include <string>
#include <utility>
#include <vector>

using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::vector;

template <typename T>
T sumNumbers(T x, T y, T z = 0, T w = 0) {
  return (x + y + z + w);
}

int main() {
  vector<int> vec = {1, 4, 8, 16, 20, 24, 28, 32};

  for (size_t i = 0; i < vec.size(); ++i) {
    cout << sumNumbers(vec[i], vec[i + 1]) << ": ";
  }
  cout << endl;

  for (size_t i = 0; i < vec.size(); ++i) {
    cout << sumNumbers(vec[i], vec[i + 1], vec[i + 2]) << ": ";
  }
  cout << endl;

  for (size_t i = 0; i < vec.size(); ++i) {
    cout << sumNumbers(vec[i], vec[i + 1], vec[i + 2], vec[i + 3]) << ": ";
  }
  cout << endl;

  return EXIT_SUCCESS;
}

Production:

5: 12: 24: 36: 44: 52: 60: 32
13: 28: 44: 60: 72: 84: 60: 32:
29: 48: 68: 88: 104: 84: 60: 4145:

Utiliser les paramètres par défaut pour implémenter le constructeur de classe en C++

Un autre scénario utile dans lequel le concept de paramètres par défaut peut être utilisé est le constructeur de classe. Parfois, les constructeurs de classe peuvent avoir besoin d’initialiser certains membres de données avec des valeurs par défaut si l’utilisateur ne fournit pas les arguments. Nous pouvons implémenter un constructeur avec les paramètres par défaut, qui appelle un autre constructeur avec des valeurs par défaut, comme illustré dans l’exemple de code suivant.

#include <iostream>
#include <string>
#include <utility>
#include <vector>

using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::vector;

class MyClass {
  string name;
  int height;
  int width;

 public:
  MyClass(string s, int h, int w) : name(std::move(s)), height(h), width(w) {}
  MyClass() : MyClass("", 0, 0) {}
  explicit MyClass(string s) : MyClass(std::move(s), 0, 0) {}

  void printMyClass() {
    cout << "name: " << name << endl
         << "height: " << height << endl
         << "width: " << width << endl;
  }
};

int main() {
  MyClass M1;
  MyClass M2("Jay", 12, 103);

  M1.printMyClass();
  cout << endl;
  M2.printMyClass();

  return EXIT_SUCCESS;
}

Production:

name:
height: 0
width: 0


name: Jay
height: 12
width: 103
Auteur: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Article connexe - C++ Function