Passer un nom de méthode et ses paramètres en argument - C++ - Programmation
Marsh Posté le 22-11-2007 à 17:42:30
Merci pour ta réponse mais j'ai du mal, voici ce que j'arrive à faire :
Code :
|
Le problème, c'est que lorsque j'appelle la méthode make, je doit lui fournir l'objet (new model()) mais moi je voudrais utiliser les objets qui se trouvent dans mon vecteur. Comment faire ? Merci
Marsh Posté le 22-11-2007 à 18:36:58
Code :
|
ca parait bon non ?
Marsh Posté le 22-11-2007 à 19:03:14
Non c'est pas bon...il faudrait que je puisse fournit le nom de la méthode que je désire exécuté à "make".
Une des solutions que je viens de trouvé est d'envoyer un pointeur NULL dans le boost::bind et de changer sa valeur avant l'exécution de la boost::function. Mais l'idée me parait assez barbare....Y a t-il moyen de faire mieux ?
Voici le code pour que vous compreniez mieux :
Code :
|
Marsh Posté le 23-11-2007 à 14:49:10
Oups, je viens de me rendre compte que mon code au-dessus, c'est du n'importe quoi...il fait une erreur de segmentation si les méthodes "move" ou "show" veulent accéder à un attribut de "model". Ce qui est logique vu que les méthodes reçoivent un "this" qui vaut NULL
Que faire ?
Marsh Posté le 23-11-2007 à 19:02:36
Après plusieurs heures d'acharnement, j'y suis enfin arrivé...et s'était tout con.
Au cas où qq aurait le même problème, voici le code :
Code :
|
Marsh Posté le 24-10-2008 à 17:18:18
Salut !
Bah moi ça m'a bien servi ! Merci beaucoup ! ça marche nickel
Marsh Posté le 21-11-2007 à 20:38:46
Bonjour,
Voici mon code source:
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