区别在与回调函数是作为另一个函数的参数的函数,事件是一个类的成员。
//下面定义两个函数
void a(int x);
void b(void(*c)(int));
//一般来讲,如果一个函数作为另一个函数的参数传递,作为参数的函数就是回调函数。
void m(void)
{
b(a); //把 a 当作回调函数
}
//事件都是作为类的一个成员
class t
{
public:
void (__closure *e)(int); //e 是这个类的事件, __closure 为定义一个指向类的成员函数的指针
void x(void) { if(e) { e(0); }} //在类里面实现调用函数 x 会产生这个事件 e, 如果使用者为这个事件定义了处理函数, 就调用
t() { e=NULL; } //类的构造函数, 在的初始状态认为事件 e 未被使用者实现
};
class u
{
public:
t t1; //成员变量 t1 为 t 类的一个对象
void te(int i); //定义一个成员函数 te
u() { t1.e = te; } //对象 t1 的事件 e 用 te 函数处理
};
--------------------next---------------------
阅读(1068) | 评论(0) | 转发(0) |