我有一类SFAPin,并有一个方法:当我将方法作为参数传递时,如何忽略范围?
SFAPin::addListener(void (*)(SFAPinEvent&), uint8_t){};
但是,当我试图通过另一个类此方法的一种方法:
void InitialState::lightChange(SFAPinEvent &event){};
light.addListener(&this->lightChange, SFAPinEvent:PIN_CHANGE);
我:
错误:没有用于调用'SFAPin :: addListener(void(InitialState :: *)(SFAPinEvent &),uint8_t'' )的匹配函数注:候选是:void SFAPin :: addListener(void(*)(SFAPinEvent &),uint8_t)
如果lightChange是一个静态方法效果很好用:
light.addListener(lightChange, SFAPinEvent:PIN_CHANGE);
但我不希望有一个静态方法
我该如何解决呢? 谢谢
这不是菊它是一个完全不同类型的函数。您需要决定是否需要在'InitialState'对象上调用'lightChange'函数(是否使用它内部的值?)。 – BoBTFish