F
Fred Baxter
It seems a common way for doing a callback from one class to another is to
do something like this, is there a better way?
struct A
{
static void call_me_back( A* instance, int new_i )
{
instance->i = new_i;
}
int i;
};
struct B
{
void set_registered_fn( A* a, void (*fn)( A*, int ) )
{
registered_instance = a;
registered_fn = fn;
}
void do_callback(){ registered_fn( registered_instance, 0 ); }
void (*registered_fn)( A*, int );
A* registered_instance;
};
void f()
{
A a;
B b;
b.set_registered_fn( &a, A::call_me_back );
b.do_callback();
}
do something like this, is there a better way?
struct A
{
static void call_me_back( A* instance, int new_i )
{
instance->i = new_i;
}
int i;
};
struct B
{
void set_registered_fn( A* a, void (*fn)( A*, int ) )
{
registered_instance = a;
registered_fn = fn;
}
void do_callback(){ registered_fn( registered_instance, 0 ); }
void (*registered_fn)( A*, int );
A* registered_instance;
};
void f()
{
A a;
B b;
b.set_registered_fn( &a, A::call_me_back );
b.do_callback();
}