IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

for_each utilisant une méthode appartenant à une classe


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut for_each utilisant une méthode appartenant à une classe
    Bonjour,

    J'ai une classe A à laquelle appartient un vecteur V, et je voudrais pour chaque élément de ce vecteur éxecuter une fonction appartenant à la classe A.

    Je ne peux pas utiliser une fonction extérieure à ma classe car j'ai besoin d'accèder aux propriétés de mon objet au moment du for_each.

    Voici en gros ce que je voudrais faire, en considérant que V est un vecteur de string, A ma classe, et X un élément appartenant à ma classe A :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    A::la_methode_du_for_each(string const& test) {
        cout << test << X;
    }
     
    A::mon_for_each {
           for_each(V.begin(),V.end(),la_methode_du_for_each);
    }
    Est ce que c'est possible?

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 743
    Points : 460
    Points
    460
    Par défaut
    Il faut utiliser la fonction 'mem_fun' ou une de ses variantes (de mémoire mem_fun, const_mem_fun, mem_fun_ref, mem_fun1, ...).
    Prudence car même si la STL est standardisée, j'ai vu des différences entre implémentations STL.

    Par ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for_each(v.begin(),v.end(), mem_fun<int,float>(&MaClasse::ma_fonction) );
    for_each(v.begin(),v.end(), bind2nd(mem_fun1<int,int,int>(&MaClasse::ma_fonction),7));
    Pour manipuler des strings, j'utiliserais plutôt une variante de mem_fun_ref

Discussions similaires

  1. Utiliser une méthode d'une instance, dans une callback
    Par qdaemon_fr dans le forum Langage
    Réponses: 3
    Dernier message: 18/04/2014, 18h09
  2. modifier un élément d'une form dans une méthode d'une autre form
    Par baldebaran dans le forum Windows Forms
    Réponses: 9
    Dernier message: 14/08/2009, 13h59
  3. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  4. Réponses: 6
    Dernier message: 20/04/2007, 15h24
  5. "ajouter une méthode dans une méthode"
    Par Zorgloub dans le forum Langage
    Réponses: 1
    Dernier message: 09/04/2006, 12h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo