Bonjour à tous,

Je découvre les joies du C++ dont ce soucis :

j'ai
-une classe Probe
-une classe MetaPacket
Probe contient un MetaPacket.

Le but est que quand j'appelle
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
 mon_meta_packet.push(word message);
il puisse parfois m'appeler des méthodes de probe, j'ai donc dans Probe les fonctions qui peuvent être appelées:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
void onEach(word message);
void onFinished();
void onAck();
void onConf(word message);
et dans MetaPacket
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
 
   void (*f_onEach)(word message); 
   void (*f_onFinished)();
   void (*f_onAck)();
   void (*f_onConf)(word message); 
//le constructeur prend les pointeurs de fonction et les copies dans ses membres ...
MetaPacket(void (*onEach)(word message), 
              void (*onFinished)(),
              void (*onAck)(),
              void (*onConf)(word message));
//..pour les appeler dans push
word push(word message)
{
   //du code
   f_onAck(message);
   //encore du code
}
jusque là ok mais quand j'appelle le constructeur de MetaPacket dans probe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
Probe::Probe() : m_meta(&Probe::onEach, &Probe::onFinished, &Probe::onAck, &Probe::onConf);
{
}
J'ai l'erreur suivante :
no matching function for call to ‘MetaPacket::MetaPacket(void (Probe::*)(word), void (Probe::*)(), void (Probe::*)(), void (Probe::*)(word))’
candidates are: MetaPacket::MetaPacket(void (*)(word), void (*)(), void (*)(), void (*)(word))

Il y a plusieurs probes donc je ne veux pas que les fonctions on* soient statiques, je souhaite juste que chaque push sur une sonde (sur son metapacket) puisse éventuellement appeler les fonctions on* sur cette même sonde.
J'ai essayé sans "&Probe::" qui me semblerait plus logique mais rien à faire, c'est un <unresolved overloaded function type> 0_o
Je suis preneur pour un petit eclaircissement, merci beaucoup !