【发布时间】:2016-08-04 11:32:15
【问题描述】:
这个问题是关于 C++ 的,但它与 Arduino 交互,由于我不是软件开发人员,我很乐意得到一些建议。
在 Arduino 中,用户创建一个类的实例并设置其委托方法:
Arduino main program:
//instance
Main interpreter;
//set delegate
interpreter.setDelegate(intepreterDelegate);
//delegate function
float intepreterDelegate(char *arg){return 3;}
Main 类,然后创建另一个类的实例,称为 Sub,等等:
Sub - > send delegate to Main-> send delegate to Arduino
Main 类成功获得来自 Sub 的委托消息:
Main.h
//being called from the sub
static float fromSubDelegate(char *arg){
// *Here I am trying to push forward this delegate out to the user on arduino
Main. b;
float result = (b.*b.fpAction)(arg);
return result;
};
float (Main.::*fpAction)(char*) = 0 ;
void setDelegate( float(*fp)(char*));
问题出在Main.cpp 我设置委托的地方
//arduino set this delegate of the main class .cpp
void Main.::setDelegate( float(*fp)(char*))
{
fpAction = fp; // *gives error because fpAction is a member function
}
我已经提供了我拥有的所有数据。我不是 C++ 程序员,因此我可能做错了什么。
【问题讨论】: