函数指针发出C++/Arduino
Function Pointer Issues C++ / Arduino
我有一个头文件,里面有一个类和几个声明和非静态成员函数,如下所示:
//foo.h
...
#include <bar.h>
class foo
{
...
public:
void myFunction();
};
和一个带有结构和类的头文件,如:
//bar.h
...
struct baz
{
class foo;
...
void (foo::*functionPointer)() = NULL;
}
class bar
{
...
public:
static myOtherFunction();
};
我想在bar.cpp的静态函数"myOtherFunction"中寻址函数指针,比如:
void bar::myOtherFunction()
{
...
baz b = baz();
b.functionPointer = &foo::myFunction;
}
但这给我带来了一个编译器错误:
bar.cpp:247:22: error: cannot convert 'void (foo::*)()' to 'void baz::foo::*)()' in assignment
b.functionPointer = &foo*:myFunction;
Error compiling
当然,对于任何有c/c++经验的人来说,这都是一个明显的错误,但现在我陷入了困境,如果能得到一些帮助,我将不胜感激。非常感谢。
如果您可以访问编译器中的C++11库/类,请包括functional
库。此处描述。它将展示一种制作完全"打包"对象的方法,这些对象同时引用了所需的方法和类实例。
如果没有,请仔细阅读C++常见问题解答的指向成员部分。作为语言的核心部分,这得到了世界各地所有人的支持。
祝你好运。
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- Arduino:for/while/if在void setup()或void loop()之前?——错误:之前需要不合格
- 人脸跟踪arduino代码的优化
- vscode下的Arduino代码出现意外编译错误
- Arduino从Txt读取整数
- Arduino C++在构造函数中用参数声明对象数组
- C++ Boost::asio串行通信与Arduino无法写入
- Arduino millis() - millis() 怎么能等于 0 以外的任何东西?
- 在Arduino中将PWM通道命名为LEDC是否有特定原因
- 'val' Arduino 错误代码之前的预期'('
- 我可以在 Arduino 的库文件夹之外安装库吗?
- 在 Arduino 上使用 sscanf 会导致与 const char * 不匹配,并且返回值始终相同,尽管输入值不同
- Arduino 用于语句错误。令牌之前的预期')' ';'。如何解决这个问题?
- 无法在 Arduino 中uint8_t数组转换为无符号长整型数组
- Arduino-C++ bool 不会从 false 变为 true
- Arduino:在 loop() 和自定义函数中运行相同的代码时出现问题
- cmsis_compiler.h:在为 Arduino Due 编译 Arduino Tensorflow lite 库
- Arduino SocketIoClient - 没有用于调用的匹配函数
- Arduino无法编译名为SP:"Expected ')' before '(' token"的变量
- 当我尝试通过 arduino 上的引用传递布尔数组时出现问题