很多时候,在调用一些系统函数,特别是数据库、异步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