【发布时间】:2011-08-12 19:38:33
【问题描述】:
我正在寻找一种将自定义事件处理程序添加为 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();
}
【问题讨论】:
-
如果它可以编译并为您工作,那就没问题了。否则你有什么问题?
-
User code is very very neat&[has] no inheritance, virtual functions, templates used这两个语句是互斥的。 -
@Als 代码很小:)
标签: c++ event-handling function-pointers