objets fonctionnels. STL (partie 11)




foncteur, c ++ débutants, entité fonctionnelle, bibliothèque STL, stlAu cours des discussions précédentes ont à plusieurs reprises flashé le terme comme un foncteur, mais il acquiert une importance particulière en ce qui concerne les algorithmes. Maintenant, il est temps de faire face à ce concept. Functor - une abréviation de faobjet unctional, représentant la structure, vous permet d'utiliser l'objet de classe en fonction de. En C ++, pour la définition de la classe foncteur pour décrire assez, qui a redéfini l'opération ().

la, en fonction de l'objet est formée, facile à afficher sur cet exemple simple:

Même de ce simple exemple montre ce qui suit: opération () dans la classe peut être forcée (déterminer avec précision, parce qu'elle n'a pas d'implémentation par défaut) nombre aléatoire, le type de paramètres et le type de retour (ou même ne retourne pas de valeur). En conséquence,:

foncteur, c ++ débutants, entité fonctionnelle, bibliothèque STL, stl

avantage foncteur est, que et). il peut être paramétré pour créer l'objet (avant d'appeler) en utilisant le constructeur avec des paramètres et b). Il peut créer un objet temporaire seulement pour la durée de l'appel de fonction. Ceci est illustré par l'exemple de la calculatrice intégrée simplifiée:

Ici, dans une rangée cout << calculer( oper )( op1, op2 ) Les actions sont exécutées séquentiellement:

  • crée un objet temporaire classe calculer constructeur avec un paramètre oper;

  • méthode est exécutée pour l'objet () (appel de fonction) avec deux paramètres;

  • opération, à exécuter dans l'appel de fonction, Elle dépend du paramètre oper, avec laquelle l'objet a été construit;

  • appel de fonction retourne le résultat de l'opération;

  • objet temporaire créé, par la suite détruit immédiatement (s'il a été décrit destructor, il aurait été appelé à ce stade);

Et par conséquent, nous obtenons:

foncteur, c ++ débutants, entité fonctionnelle, bibliothèque STL, stl

Mais l'utilisation des foncteurs particulièrement répandues acquis алгоритмах STL, discuté plus tôt, quand ils sont passés dans le défi en tant que paramètre, au lieu de la fonction, action définissant ou d'un algorithme prédicat.

Bulletin de nouvelles leçons sur la programmation:

objets fonctionnels. STL (partie 11)
4 (80%) 1 vote

Sur huile

une expérience pratique sur le développement de logiciels 40 ans. société de logiciels internationale Global Teacher Logic. IBM Developer Works auteur permanent des publications. éditeur scientifique de l'ordinateur littérature maison d'édition "Symbole-Plus", Saint-Pétersbourg.

3 réflexions sur "objets fonctionnels. STL (partie 11)

    1. Ceci est de l'autre Forum C ++: les classes, portée.
      L'exemple fait référence à la visibilité classe de base privée: l'accès à la classe de base, il n'y a de l'intérieur classe sommateur.
      Qualifier publique plus déjà défini dans classe, et se réfère à une fonction membre, a annoncé après: constructeur et opérateur (). Il montre que ces fonctions sont membres visibles et peuvent être utilisés partout dans le programme.

      Dans cet exemple, tout cela est pas si important, mais il est une partie distincte et importante de la langue C ++.

Laisser un commentaire

Votre adresse email ne sera pas publiée. les champs requis sont indiqués *