今天上软件体系结构时,学了一种EventSystem的结构,是java中向控件注册事件等时使用的一种模式.下课时我思考了一下,在c++中使用函数指针可以方便的实现这种方法.下面是我实现了的一个
/*
此程序的目的是测试用函数指针实现 软件体系结构中的事件处理添加
即EventHandle模型
*/
#include <iostream>
#include <vector>
using namespace std;
void Print1()
{
cout<<"1"<<endl;
}
void Print2()
{
cout<<"2"<<endl;
}
void (*f)();
class EventHandle
{
public:
vector<void (__cdecl *)(void)> ff;
void Invoke();
};
void EventHandle::Invoke()
{
int num=ff.size();
int i;
for(i=0;i<num;i++)
{
f=ff[i];
(*f)();
}
}
int main()
{
EventHandle e;
f=Print1;
e.ff.push_back(f); //注册事件1,处理函数为Print1
f=Print2;
e.ff.push_back(f); //注册事件1,处理函数为Print2
e.Invoke();
return 0;
}
c++注册事件笔记
最新推荐文章于 2023-04-06 00:10:56 发布