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. |
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