回調我有這需要更多的回調類.. 我試圖用一個接口來實現它們:如何實現與接口
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);
,但我不能傳遞一個回調到我BusImplemantation類
error: argument of type 'bool (Main::)()' does not match 'bool (CallbacksInterface::*)()'
我覺得這是有模板的解決方案,但我編程嵌入式設備和我編譯器是有限的。
那豈不是更簡單的有代表單一功能的回調接口,並通過指針的不同實現?或者甚至更好,使用''std :: functions''? – juanchopanza
如果使用公共繼承,例如'class Main:public CallbacksInterface',它有幫助嗎? –
爲了防止您使用實際軟件項目中的類型名稱 - BusImplemantation中存在拼寫錯誤。 –