Advertisement
rizky_herucakra

callback with member function pointer

Jul 5th, 2013
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.94 KB | None | 0 0
  1. //
  2. //  main.cpp
  3. //  callbackWithMemberPointer
  4. //
  5. //  Created by Rizky Herucakra on 7/5/13.
  6. //  Copyright (c) 2013 Rizky Herucakra. All rights reserved.
  7. //
  8.  
  9. #include <iostream>
  10.  
  11. class A{
  12. public:
  13.     void a_callback();
  14.  
  15. };
  16.  
  17. void A::a_callback(){
  18.     using namespace std;
  19.     cout << "A::a_callback is called";
  20. }
  21.  
  22. typedef void (A::*callback_func)();
  23.  
  24. class B{
  25.     callback_func callback;
  26.     A* obj;
  27. public:
  28.     void do_something();
  29.     void register_callback(A* ob,callback_func c);
  30.    
  31.     B();
  32. };
  33.  
  34. B::B():obj(nullptr),callback(nullptr){}
  35.  
  36. void B::register_callback(A* ob,callback_func c){
  37.     obj = ob;
  38.     callback = c;
  39. }
  40.  
  41. void B::do_something(){
  42.     using namespace std;
  43.     cout << "B::do_something called" << endl;
  44.     if (callback != nullptr) (obj->*callback)();
  45. }
  46.  
  47.  
  48.  
  49. int main(int argc, const char * argv[])
  50. {
  51.  
  52.     A a;
  53.     B b;
  54.     b.register_callback(&a, &A::a_callback);
  55.     b.do_something();
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement