.h文件
#ifndef CALLBACK_H
#define CALLBACK_H
typedef void (* Callback )( void *n_obj, void *user_data );//callback
struct Timer
{
void *user_data;
void *user_obj;
Callback n_cb;
};
class callbacks
{
public:
callbacks();
void add(Callback,void *,void*);
void action();
private:
Timer a;
};
#endif // CALLBACK_H
.cpp文件
#include "callback.h"
callbacks::callbacks()
{
}
void callbacks::add(Callback p, void * par1, void *par2)
{
a.user_data=par1;
a.user_obj=par2;
a.n_cb=p;
}
void callbacks::action()
{
(*a.n_cb )(a.user_data, a.user_obj );
}
main.cpp文件
#include "callback.h"
void UserCallback( void *obj, void *pa )
{
printf(" UserCallback:: ( obj = 0x%x ) T_ID=%u\n");
}
int main(int argc, char *argv[])
{
callbacks w;
w.add(UserCallback,( void *)22,( void *)33);
w.action();
}