pointeur de fonction et heritage
Bonsoir
Supposons :
Code:
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:
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