Возможно ли такое, через шаблоны: есть указатель на класс есть указатель на метод класса Но как вызвать функцию Пример:| Код | template <typename T> class cTplHdpService { public: cTplHdpService(){m_pCallBack=NULL;}; ~cTplHdpService(){}; void Register(T *Class,void (T::*method)(unsigned short, unsigned char *, int)){ pClassCallBack=Class;// Получаю указатель на класс m_pCallBack=method;// Получаю указатель на метод класса }; void ProcessDsp(unsigned short Command, unsigned char *pData, int iLen){ //pClassCallBack->*m_pCallBack(Command, *pData, iLen);// А вот здесь проблемма ? } protected: private: void (T::*m_pCallBack)(unsigned short, unsigned char *, int); T *pClassCallBack; };
class MyExample { public: MyExample(){}; ~MyExample(){}; void Processing(unsigned short Command, unsigned char *pData, int iLen){ printf("\nMyExample"); }; protected: private: };
int main(int argc, char* argv[]) { printf("Hello World!\n");
MyExample *pMyExample=new MyExample();
cTplHdpService<MyExample> *pTPL=new cTplHdpService<MyExample>(); void (MyExample::*method)(unsigned short, unsigned char *, int)=&MyExample::Processing; pTPL->Register(pMyExample,method); pTPL->ProcessDsp(1,(unsigned char *)2,3); return 0; }
| |