我正在寻找一种将自定义事件处理程序添加为C++类成员函数的方法。发现这个代码实际上起作用。 我需要分离库类和用户代码,允许用户代码自定义库类。 这里是代码的概念。这样做是正确的吗?线程安全性在我的问题中超出了范围。编译器是gcc。 用户代码非常非常整齐。没有继承,虚函数,模板中使用这是实现自定义事件处理程序的正确方法吗?
#include <stdio.h>
typedef void fn();
class aaa
{
public:
aaa() : customhandler(NULL) {}
fn *customhandler;
};
//用户代码开始
void dostuff() {
printf("doing stuff 1\n");
}
void dostuff2() {
printf("doing stuff 2\n");
}
int main()
{
aaa aaa1;
aaa1.customhandler = &dostuff;
aaa1.customhandler();
aaa1.customhandler = &dostuff2;
aaa1.customhandler();
}
如果它为你编译和工作,那就好了。否则你的问题是什么? –
'用户代码非常整洁并没有继承,虚拟函数,模板使用'这两个语句是相互排斥的。 –
@ Als代码大小非常小:) – tohaz