class CCallBackBase
{
public:
virtual voidcallBack(void){}};
模板類
template<typename T>
class CTemplateCallBack: public CCallBackBase
{
public:CTemplateCallBack(T* ptr_T,void(T::*ptr_func)()):_ptr_T(ptr_T),_ptr_func(ptr_func){}
virtual voidcallBack(void){if(_ptr_T && _ptr_func)(_ptr_T->*_ptr_func)();}intenable(){//push "this" into a CCallBackBase* array or vector}intdisable(){//pop "this" into a CCallBackBase* array or vector}
private:
T* _ptr_T;void(T::*_ptr_func)();};