很多时候,在调用一些系统函数,特别是数据库、异步IO的时候,都需要使用CallBack回调机制,而通常callback函数都需要使静态编译才能通过,而类的实例都是动态生成。如何解决呢?
Class A {
static void callbackStaticEntryPoint(void * pthis);
void realEntryPoint();
}
void A::callbackStaticEntryPoint(void * pThis) {
A *p = (A *)pThis;
p->realEntryPoint();
return 0;
}
这样暴露在外的只有一个callbackStaticEntryPoint的static地址,这样更安全了。
参照:http://blog.csdn.net/wojiushiwo987/article/details/7720656