1 #include <WINDOWS.H> 2 #include <IOSTREAM> 3 using namespace std; 4 /************************************************************************/ 5 /* 下层回调定义 */ 6 /************************************************************************/ 7 8 class baseCallBack 9 { 10 public: 11 virtual void CallbackFunction(int a, int b){}; // 虚函数,提供上层实现 12 protected: 13 private: 14 }; 15 16 class CWork 17 { 18 public: 19 static void registercallback(baseCallBack *pbCallback); 20 static void makecallback(int a, int b); 21 protected: 22 private: 23 static baseCallBack *m_pbCallback; 24 }; 25 26 baseCallBack *CWork::m_pbCallback = NULL; 27 28 // 提供注册函数 29 void CWork::registercallback(baseCallBack *pbCallback) 30 { 31 if (pbCallback != NULL) 32 { 33 m_pbCallback = pbCallback; 34 } 35 } 36 37 // 提供触发接口 38 void CWork::makecallback(int a, int b) 39 { 40 m_pbCallback->CallbackFunction(a, b); 41 } |