Bonjour,
 
Voici mon code source:
| Code : 
 #include <iostream>#include <vector>#include <boost/bind.hpp>#include <boost/function.hpp>using namespace std;class model{   public:      void show(){cout<<"show"<<endl;}      void move(int x, int y){cout<<"move"<<endl;}};class A{   public:      A()      {         vModel.push_back(new model());         vModel.push_back(new model());      }      void make(void (model::*fct)())      {         for(int i=0;i<vModel.size();i++)         {            boost::bind(fct, vModel[i])();         }      }   private:      vector<model *> vModel;};int main(){   A a;   a.make(&model::show);   //a.make(&model::move);
   return 0;}
 | 
 
La ligne "a.make(&model::show);" permet d'appeler la méthode "show" de tous les modèles. C'est simple car la méthode ne prend aucun argument.
Mais comment feriez-vous pour passer les 2 arguments à la méthode "move" ? Et j'aimerais bien un système qui fonctionne avec n'importe quel méthode qui pourrait se trouver dans la class "model".
 
Merci d'avance...
 
Message édité par casafa le 21-11-2007 à 20:41:08