objets fonctionnels. STL (partie 11)

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




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:

huile

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. А почему в первом примере символ : стоит перед словом public? Поясните, s'il vous plaît)

    1. Это уже из другого раздела C++: les classes, portée.
      В примере private относится к видимости базового класса: доступ к базовому классу существует только изнутри класса summator.
      Квалификатор public дальше уже определён внутри classe, и относится к функциям членам, объявленным после него: конструктору и оператору (). Он показывает что эти функции члены видимы и могут быть использованы в любом месте программы.

      В данном примере всё это не так важно, но это отдельная и важная часть языка C++.

Laisser un commentaire

Placez le code dans les balises: <pre class="lang:c ++ décodage:true ">VOTRE CODE</pré>