我有一个需要更多回调函数的类。 我正尝试使用接口来实现它们:
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::*)()'
我认为模板可以解决这个问题,但是我正在编写嵌入式设备的程序,我的编译器有限制。
std::functions
更好。 - juanchopanzaclass Main: public CallbacksInterface
,是否有帮助? - Frerich RaabeBusImplemantation
中有一个拼写错误。 - Frerich Raabe