Comment utiliser les références de fonction dans C ++

Comment utiliser les références de fonction dans C ++
C ++ fournit diverses méthodes pour transmettre des arguments aux fonctions, y compris par valeur, par pointeur et par référence. Passer des arguments par référence permet aux fonctions de modifier les valeurs des variables d'origine, au lieu de simplement travailler avec des copies. Les références de fonction fournissent un autre moyen de passer les arguments par référence et peuvent simplifier le code en éliminant le besoin de syntaxe du pointeur.

Cet article explorera comment utiliser Références de fonction en C++, y compris la syntaxe, un exemple et les avantages en C++.

Quelles sont les références de fonction en C++

Les développeurs peuvent utiliser Références de fonction en C ++ pour écrire du code qui est à la fois plus efficace et expressif. Références de fonction, Par rapport aux appels de fonction conventionnels, laissez les programmeurs envoyer des fonctions entières comme paramètres à d'autres fonctions. Cela présente une variété d'avantages, notamment la lisibilité accrue du code, la liberté de conception de fonctions élargie et des gains de performances significatifs.

Une caractéristique clé de C ++ est la possibilité d'envoyer des fonctions comme paramètres à d'autres fonctions en utilisant Références de fonction. Lorsque vous travaillez avec des applications grandes et complexes, cela peut être extrêmement utile car il favorise une plus grande flexibilité et abstraction.

Comment utiliser les références de fonction en C++

La syntaxe de base pour déclarer un Référence de la fonction est comme suit:

RETOUR-TYPE ET FONCTION-REF-NAME (Paramètres)

Dans ce cas, «Type de fonction» fait référence au type de fonction que nous souhaitons envoyer comme argument, «Type de retour» fait référence au type de valeur Référence de la fonction revient, et "paramètres" fait référence aux arguments adoptés.

Il y a certaines étapes fondamentales dans l'utilisation Références de fonction en c++. Créer une fonction qui accepte d'abord une référence de fonction comme argument. Toute fonction qui correspond au type de référence doit être capable de gérer cette fonction. Votre fonction doit être capable de gérer toute fonction de ce type.

#inclure
int add (int a, int b)
retourner a + b;

int soustrait (int a, int b)
retourner a - b;

int main()
int (* padd) (int, int) = add;
int (* pSubstract) (int, int) = soustraire;
std :: cout << "6 + 4 = " << pAdd(6, 4) << std::endl;
std :: cout << "8 - 2 = " << pSubtract(8, 2) << std::endl;
retour 0;

Dans le code ci-dessus, les deux fonctions ajoutent et soustrayent les deux acceptent deux paramètres entiers et renvoient une valeur entière. Ensuite, nous définissons deux variables de référence de fonction appelées padd et psyching, qui sont des pointeurs vers des fonctions qui acceptent deux arguments entiers et produisent une valeur entière. Avec les adresses des fonctions ADD et Soustraire, respectivement, nous initialisons ces variables. Ensuite, nous pouvons utiliser les variables de référence de fonction PADD et PSUMTRACT pour invoquer indirectement ces fonctions.

Sortir

Lors de l'utilisation Références de fonction en C++, vous devriez adhérer à certaines meilleures pratiques. Avant quoi que ce soit d'autre, il est essentiel de confirmer que toutes les fonctions auxquelles vous fournissez des références sont apatrides. Cela indique qu'ils utilisent simplement les paramètres d'entrée qui leur ont été fournis et ne modifient aucun état externe. C'est parce que l'utilisation Références de fonction Gérer les modifications à l'état externe peut avoir des résultats inattendus car ils n'étaient pas destinés à le faire.

Lorsque vous passez une fonction comme un argument à une autre fonction, par exemple lors de l'utilisation d'un algorithme de tri qui accepte une fonction de comparaison comme un argument, Références de fonction peut être utile. De plus, ils peuvent être utilisés pour implémenter des fonctions de rappel, dans lesquelles une fonction est appelée lorsqu'un événement spécifique a lieu.

Avantages de l'utilisation de références de fonction

1: code efficace

Lorsque vous utilisez Références de fonction, Vous pouvez également bénéficier d'une variété de fonctionnalités C ++ qui vous aident à créer du code plus propre et plus efficace. Par exemple, vous pouvez écrire du code incroyablement puissant et polyvalent en combinant Références de fonction avec d'autres capacités C ++ comme les itérateurs, la surcharge de l'opérateur et les modèles.

2: Améliorations des performances

La capacité d'augmenter considérablement les performances est peut-être le plus grand avantage de Références de fonction. UN Référence de la fonction est un pointeur vers la fonction lorsqu'il est passé. Ce faisant, vous pouvez économiser de l'espace en ne créant pas une copie de la fonction chaque fois qu'il est invoqué. Cela peut être extrêmement important lorsqu'il s'agit de fonctions longues, compliquées ou à grande échelle.

3: passer des fonctions comme des arguments

La capacité de fournir des fonctions comme paramètres à d'autres fonctions est l'un des principaux avantages de l'utilisation Références de fonction. Vous pouvez commencer à fournir Références de fonction Comme arguments après la configuration de votre fonction. Passez simplement la référence à la fonction appropriée lorsque vous appelez la fonction. Cela peut être fait soit en nommant explicitement la fonction ou en utilisant une fonction lambda. Ce dernier est particulièrement utile lorsque vous devez passer une fonction anonyme ou déformée en ligne.

Conclusion

Pour les programmeurs qui essaient de créer un code plus efficace et expressif, Références de fonction en C ++ sont vitaux. Vous pouvez augmenter la flexibilité dans la conception des fonctions, augmenter la lisibilité du code et obtenir des avantages de performances significatives en passant Références de fonction comme paramètres. Vous pouvez commencer à utiliser Références de fonction Dans votre code C ++ et profitez de tous leurs avantages avec un peu de pratique.