Bonsoir

Supposons :
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
class Module
{
protected:
    typedef bool (Module::*TMessageFct)(const Message& rcMessage);
 
private:
    typedef std::map<int, TMessageFct> TMapMessageFct;
    TMapMessageFct m_mapMessages;
 
public:
    Module() { }
    virtual ~Module() {}
 
    void Connect(int nMsg, TMessageFct pFonction)
    {
        m_mapMessages[nMsg] = pFonction;
    }
};
et :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
class MonModule : public Module
{
public:
    MonModule()
    {
        Connect(1, &MonModule::OnMessage1);
    }
 
    void OnMessage1(const Message& rcMessage)
    {
    }
};
Mon compilateur rale sur le connect, car il trouve que la signature n'est pas bonne. Je peux comprendre, Module::Fonction est différent de MonModule::UnAutreFonction.

Y a t il une methode pour s'en sortir ? Un vieux caste de la mort est il propre ?
En fait, je pensais que comme il y avait héritage, ca pouvait passer...
--
Jérémie