Les foncteurs en C++

Muhammad Husnain 12 octobre 2023
  1. Introduction aux foncteurs en C++
  2. Fonctions avec paramètres en C++
  3. Fonctions prédéfinies en C++
Les foncteurs en C++

Ce tutoriel trivial présente les foncteurs et leur utilisation dans le langage de programmation C++. Tout d’abord, cet article présentera brièvement les foncteurs, puis passera à sa syntaxe et à sa convivialité.

Introduction aux foncteurs en C++

Les foncteurs sont les objets de classe qui peuvent se comporter comme des fonctions. Il existe de nombreux foncteurs disponibles dans la bibliothèque de modèles standard C++ (STL), et vous pouvez également créer les vôtres.

Le principal avantage des foncteurs est que bien qu’ils ne soient pas des fonctions, ils peuvent toujours enregistrer l’état car ce sont des objets de classe.

Les foncteurs sont créés en surchargeant l’opérateur () dans n’importe quelle classe afin que l’objet de cette classe puisse être appelé, comme nous appelons une fonction simple.

Regardons l’exemple ci-dessous pour avoir une compréhension claire.

class Hello {
 public:
  void operator()() { cout << "Hello from Functor" << endl; }
};

Maintenant, pour l’utiliser, nous allons créer un objet de la classe Hello et l’appeler ainsi :

int main() {
  Hello hello;
  hello();
  return 0;
}

Production:

Hello from Functor

Nous pouvons voir à partir de la sortie que l’opérateur d’appel de fonction () est appelé lorsque nous utilisons l’objet avec l’opérateur.

Fonctions avec paramètres en C++

Les foncteurs peuvent également être définis comme ayant des paramètres et un type de retour, tout comme les fonctions. Nous pouvons modifier le foncteur précédent pour y inclure le paramètre.

class Hello {
 public:
  void operator()(string name) {
    cout << "Hello " << name << " from Functor" << endl;
  }
};

Pour l’appeler, nous devons également passer le paramètre.

int main() {
  Hello hello;
  hello("david");
  return 0;
}

Production:

Hello david from Functor

Fonctions prédéfinies en C++

De nombreux foncteurs sont inclus dans les fichiers d’en-tête fonctionnels qui sont empaquetés dans la bibliothèque de modèles standard C++. Certains d’entre eux sont discutés ici.

Nom du foncteur La description
plus Calcule la somme de deux nombres passés en paramètres.
minus Calcule la différence entre deux nombres passés en paramètres.
multiplies Calcule le produit de deux nombres passés en paramètres.
divides Calcule le résultat de la division de deux nombres passés en paramètres.
equal_to Vérifie si les deux paramètres passés sont égaux ou non.
not_equal_to Vérifie si les deux paramètres passés ne sont pas égaux.
greater Vérifie si le premier paramètre est supérieur au second.
less Vérifie si le premier paramètre est inférieur au second.
Muhammad Husnain avatar Muhammad Husnain avatar

Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.

LinkedIn