Salut
existe il en C++ une meilleur maniere que les pointeurs sur fonction qui viennent du C ?
c'est tout
Merci
Salut
existe il en C++ une meilleur maniere que les pointeurs sur fonction qui viennent du C ?
c'est tout
Merci
Meilleure manière pour faire quoi aussi ?existe il en C++ une meilleur maniere que les pointeurs sur fonction qui viennent du C ?
une maniere plus adapté au C++ ... je sais pas, ya ptetere des classes toutes faites qui permettent de lancer une fonction définie en fonciton du type de d'info a analyser...
dans mon cas il s'agit de faire un parseur de requetes ... donc un système de ce type s'impose, je peux pas y alelr au if ...
si ca n'existe pas jele ferai a la maniere du C alors
Merci
une meilleure technique consiste à utiliser un design pattern.
Cas typique du Factory si je ne m'abuse : appeler une fonction, suivant certains paramètres. Va jeter un oeil sur :
http://www.dofactory.com/Patterns/PatternFactory.aspx
La STL utilise des foncteurs. Généralement on se passe des pointeurs de focntions via une classe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 class TimerCallback { public: virtual void DoIt() = 0; }; // appelle le callback tous les <Ms> millisecondes void CreateTimer( int Ms, TimerCallBack * ); // notre callback à appeler class MyCallBack : public TimerCallback { public: virtual void DoIt() { cout << "coucou\n"; } };
Tu peux aussi aller jeter un oeil du côté de boost::function
ok merci tlm!
Je vais regarder du cote des design patterns deja, ca a l'air bien interessant...
Bonjour,
une manière de faire sans if ni switch pour les fonctions est de se baser sur le polymorphisme.
Tu définis une classe de base avec des méthodes viruelle abstraites, puis tu en dérives. Seules les classes fillles auront le code spécifique.
Le swicth (ou le if) est alors reporté sur l'appelant, et avec un algo étudié peut être centralisé une fois et une seule dans le code.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager