函数的注册与回调【经验】
刚工作不久,就遇到了让大多数程序员新人头疼的函数注册与回调问题。因此,特意记录一遍博文。既是问题解决经验的总结,也是分享。
- 1.何为函数的注册与回调
- 2.如何实现函数的注册与回调
1.借鉴一位仁兄对函数注册与回调的形象解释,可对该问题形容为:该过程最重要的函数有两个,注册函数与回调
函数。两个函数位于两个不同的模块或是类中,实现回调函数的一方就像学生,实现注册函数的一方则像老师。这是
一个学生向老师讨教,而老师不能立即给予回答的事件。于是学生留给老师自己的一个电话号码,当老师有时间或是
想出答案之后则会给予该学生问题的答复。回调往往是起到一个模块(类)用来向另一个模块(类)所要信息的作用。
只要理解了这一点,就能清晰的理解整个函数注册与回调的逻辑。
2.对于回调函数,最好将其定义为类内静态函数或是全局函数。但就c++语言面向对象的特性,建议定义为静态函数。
A.h
class A
{
public:
A();
~A();
public:
int funcCompleteRegister(B *handle);