Ces objets se comportent comme des fonctions, mais avec un état et une fonctionnalité supplémentaires. Ils peuvent être utilisés pour offrir plus de flexibilité et de personnalisation qu'une fonction simple, et sont couramment utilisés dans des conteneurs comme STD :: Soi et Std :: Find_if.
Comment écrire des objets de fonction?
Pour écrire un objet de fonction, Nous devons créer une classe qui surcharge l'opérateur d'appel de fonction (). Les instances de la classe peuvent être invoquées comme s'ils étaient des fonctions conventionnelles grâce à cet opérateur, qui est un élément crucial d'un objet de fonction. La syntaxe pour surcharger l'opérateur est:
classe MyFunctionObject
public:
ReturnType Operator () (Paramtype1 P1, paramtype2 p2,…)
// mise en œuvre
;
Où Type de retour est le type de retour de la fonction, et Paramtype1, Paramtype2, et ainsi de suite sont les types des paramètres de fonction. L'implémentation de l'opérateur () doit effectuer la logique du objet de fonction.
Comment utiliser des objets de fonction en C++
Une fois que nous avons défini une classe qui surcharge l'opérateur d'appel de fonction et effectue la logique du objet de fonction, Nous pouvons l'utiliser comme suit:
#inclure
Classe Square
public:
int opérateur () (int x) const
retour x * x;
;
int main()
Carré carré;
int numéro = 5;
INT Result = Square (nombre);
std :: cout << "The square of " << number << " is " << result << std::endl;
retour 0;
Dans l'exemple ci-dessus, nous construisons la classe carrée, dont l'opérateur () renvoie le carré d'un entier x lorsqu'il est passé comme argument. Nous créons un objet carré appelé carré dans la fonction principale () et l'utilisons pour trouver le carré d'un numéro entier.
Sortir
Avantages des objets de fonction
Objets de fonction fournir plusieurs avantages par rapport aux fonctions traditionnelles en C++. Ils offrent plus de flexibilité lors de l'utilisation d'algorithmes car ils peuvent être personnalisés pour effectuer n'importe quelle opération, contrairement aux fonctions traditionnelles. Ils peuvent également contenir un état, qui peut être utile pour maintenir des informations entre les appels, tandis que les fonctions traditionnelles sont entièrement apatrides.
En outre, objets de fonction peut être adopté comme arguments à d'autres fonctions, ce qui peut rendre le code plus concis et plus facile à lire. Ils nous permettent également d'utiliser des fonctionnalités C ++ telles que des modèles pour écrire du code générique qui fonctionne avec différents types de données, itérables et algorithmes.
Un avantage de l'utilisation d'un objet de fonction Au lieu d'une fonction simple, il peut avoir des états ou des fonctionnalités supplémentaires qui peuvent être personnalisés.
Conclusion
Objets de fonction en C ++ sont une technique utile pour écrire du code réutilisable qui offre une plus grande flexibilité que les fonctions conventionnelles. Vous pouvez les utiliser en créant une classe qui remplace l'opérateur d'appel de fonction, qui peut ensuite être transmis comme arguments aux algorithmes qui utilisent objets de fonction comme entrées. En utilisant objets de fonction a les avantages d'être flexibles, avec état, générique et convivial. Avec objets de fonction, Nous pouvons écrire un code plus expressif, compact et compréhensible qui est également plus facile à maintenir.