gpt4 book ai didi

c++ - 当函数属于类时未解析的重载函数类型

转载 作者:行者123 更新时间:2023-11-30 05:28:30 25 4
gpt4 key购买 nike

我正在使用类 Ticker在我名为 HookNinja 的类中的代码如下:

void HookNinja::pulser(float period, float onTime) {
_ticker1.attach(period, HookNinja::pulseUp, onTime);
}

void HookNinja::pulseUp(float onTime) {
digitalWrite(2, LOW);
_ticker2.attach(onTime, HookNinja::pulseDown);
}

void HookNinja::pulseDown() {
digitalWrite(2, HIGH);
_ticker2.detach();
}

根据 Ticker 文档,第二个参数是一个函数,但是是一个常规参数,我的在一个类中,每次我尝试编译时我得到:

error: no matching function for call to 'Ticker::attach
(float&, <unresolved overloaded function type>, float&)'

这发生了 herehere ,但从这些答案中我无法理解我应该在我的代码中做什么来修复它。

注意: _ticker1 和 2 在我的头文件中定义。

最佳答案

我怀疑这可能是定义顺序的问题:您首先使用 pulseUp() 然后定义它;您首先使用 pulseDown() 然后定义它。

我的建议:尝试颠倒顺序:首先定义 pulseDown(),然后定义 pulseUp(),最后定义 pulser()

void HookNinja::pulseDown() {
digitalWrite(2, HIGH);
_ticker2.detach();
}

void HookNinja::pulseUp(float onTime) {
digitalWrite(2, LOW);
_ticker2.attach(onTime, HookNinja::pulseDown);
}

void HookNinja::pulser(float period, float onTime) {
_ticker1.attach(period, HookNinja::pulseUp, onTime);
}

p.s.:抱歉我的英语不好

关于c++ - 当函数属于类时未解析的重载函数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36812818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com