我有一个类,A
它需要静态事件处理程序。我需要静态事件处理程序,因为中断正在调用事件处理程序。
class A {
private:
static void (*fn1)();
public:
A();
static void setFn1(void (*function)(void));
static void onEvent();
};
A::A() { }
void A::setFn1(void (*function)(void)) {
fn1 = function;
}
void A::onEvent() {
A::fn1();
}
我想A
基于应用程序继承并在子级中创建事件处理程序逻辑,使用fn2
here。
class B : public A{
public:
B();
void fn2();
};
B::B() {
A::setFn1(&fn2);
}
void B::fn2() {...}
当我打电话时:A::setFn1(&fn2)
我收到以下编译器错误。
#169 “void (B:: )()”类型的参数与“void ( )() ”类型的参数不兼容
我的脑子里全是这些空指针,我不知道我是否还在使用正确的设计。该类A
包含我所有的实用方法。该类B
包含我的应用程序特定功能。