Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // main.cpp
- // callbackWithMemberPointer
- //
- // Created by Rizky Herucakra on 7/5/13.
- // Copyright (c) 2013 Rizky Herucakra. All rights reserved.
- //
- #include <iostream>
- class A{
- public:
- void a_callback();
- };
- void A::a_callback(){
- using namespace std;
- cout << "A::a_callback is called";
- }
- typedef void (A::*callback_func)();
- class B{
- callback_func callback;
- A* obj;
- public:
- void do_something();
- void register_callback(A* ob,callback_func c);
- B();
- };
- B::B():obj(nullptr),callback(nullptr){}
- void B::register_callback(A* ob,callback_func c){
- obj = ob;
- callback = c;
- }
- void B::do_something(){
- using namespace std;
- cout << "B::do_something called" << endl;
- if (callback != nullptr) (obj->*callback)();
- }
- int main(int argc, const char * argv[])
- {
- A a;
- B b;
- b.register_callback(&a, &A::a_callback);
- b.do_something();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement