事件系统无非就是,当这个事件发生时调用一个(些)函数来处理这个事件。
处理函数可能是多种类型的函数:
静态函数/全局函数
类的成员函数
ISlot 是函数对象,接受参数CParam.是处理函数的基类.
CSlotFreeFunction 用来描述静态函数
CSlotMemberFunction 用来描述类的成员函数
CSlotSubscriber 用来提供统一的接口供上层逻辑调用.CEvent 表示事件
啥也不说了,先上图。
接着上代码
创建事件,绑定函数
[cpp] CEvent* m_pEvent = new kzlib::CEvent("test"); m_pEvent->Subscribe(kzlib::CSlotSubscriber(&CPageProject::Ontest,this)); [/cpp]
事件调用
[cpp] kzlib::CParam args; (*m_pEvent)(args); [/cpp]