我有一个需要更多回调的类。我正在尝试使用接口来实现它们:
class CallbacksInterface
{
public:
virtual bool mycallback1() = 0;
virtual bool mycallback2() = 0;
virtual bool mycallback3() = 0;
};
Class BusImplementation{
public:
addRequest(bool (CallbacksInterface::*callback)());
}
回调是addRequest()方法的参数,定义为接口方法的指针。所以我想添加请求..
//class with callbacks
class Main:CallbacksInterface{
public:
bool mycallback1(){..};
bool mycallback2(){..};
bool mycallback3(){..};
//..
}
BusImplemantation bus;
Main main;
bus.addRequest(main.mycallback1);
bus.addRequest(main.mycallback2);
bus.addRequest(main.mycallback3);
但我不能将回调传递给我的 BusImplementation 类
error: argument of type 'bool (Main::)()' does not match 'bool (CallbacksInterface::*)()'
我认为有一个带有模板的解决方案,但是我正在编写嵌入式设备并且我的编译器是有限的。