weidagang2046的專欄

          物格而后知致
          隨筆 - 8, 文章 - 409, 評論 - 101, 引用 - 0
          數據加載中……

          Use Functor for Callbacks in C++

          Use Functor for Callbacks in C++
          Using the callback function in C is pretty straightforward, but in C++ it becomes little tricky.

          If you want to use a member function as a callback function, then the member function needs to be associated with an object of the class before it can be called. In this case, you can use functor.

          Suppose you need to use the member function get() of the class base as a callback function

          
          class base
          
          {
          public:
          	int get ()
          	{ return 7;}
          };
          
          Then, you need to define a functor:
          
          class CallbackFunctor
          {


          public: functor(const base& b):m_base(b) {} int operator() () { return m_base.get(); }
          private:
                   base m_base; };
          Now you can use an object of CallbackFunctor as a callback function as follows.

          Define the function that needs a callback to take an argument of type CallbackFunctor:

          
          void call (CallbackFunctor& f)
          {
          	cout << f() << endl;
          }
          
          
          int main ()
          {
          	base b;
          	functor f(b);
          	call(f);
          }
          

          posted on 2006-01-21 15:45 weidagang2046 閱讀(447) 評論(0)  編輯  收藏 所屬分類: C/C++

          主站蜘蛛池模板: 秦皇岛市| 青岛市| 赤壁市| 周至县| 浪卡子县| 淅川县| 垦利县| 五华县| 科技| 兴宁市| 嘉义县| 淅川县| 东明县| 丹巴县| 尼玛县| 文昌市| 嘉黎县| 三亚市| 陆川县| 商丘市| 瓦房店市| 曲沃县| 靖边县| 井冈山市| 繁昌县| 蛟河市| 九寨沟县| 安宁市| 安丘市| 南投市| 兴山县| 青田县| 澄迈县| 伊宁县| 惠来县| 精河县| 彩票| 环江| 巴彦县| 淮滨县| 封丘县|