Sink的本质是利用C++的封装、继承、多态的面向对象来实现,从实现角度来说,更优于函数指针回调;
1 // cbBysink.cpp : Defines the entry point for the console application. 2 // 3 4 #include "stdafx.h" 5 #include "cbBysink.h" 6 7 /************************************************************************/ 8 /* 上层回调函数 */ 9 /************************************************************************/ 10 11 class CMyWork : public baseCallBack 12 { 13 public: 14 CMyWork() 15 { 16 // 注册回调 17 CWork::registercallback(this); 18 } 19 // 回调注册实现 20 void CallbackFunction(int a, int b) 21 { 22 cout << "a = " << a << ",b = " << b << "\n" << endl; 23 return; 24 } 25 // 触发回调 26 void makefunction(int a, int b) 27 { 28 CWork::makecallback(a, b); 29 return; 30 } 31 protected: 32 private: 33 }; 34 35 int main(int argc, char* argv[]) 36 { 37 CMyWork c_mywork; 38 39 // 触发的时候不需要进行动态注册 40 c_mywork.makefunction(5, 6); 41 42 return 0; 43 } |