<分区>
这个问题介于理论和实践之间。
我有一个 C 文件(我们称它为 fileA.c 和 fileA.h)
fileA.h 定义了一个结构体:
typedef struct
{
/** Callback function which is called upon an event occurrence */
void (*FileAcb)(MyEvent event, uint8 val);
} MyStruct;
在 fileB.cpp 和 fileB.h 中,我试图像这样为其分配回调函数。
文件B.h
class FileB
{
public:
static void Callback(MyEvent event, uint8 val);
protected:
/**Protected members */
private:
/**Private members */
MyStruct myStruct;
};
文件B.cpp
bool FileB::Start()
{
myStruct.FileAcb= FileB::Callback;
return true;
}
void FileB::Callback(MyEvent event, uint8 val)
{
//do some stuff here.
}
这行得通。但是,我正在寻找一种方法来编写这一行:
myStruct.FileAcb= FileB::Callback;
以一种允许我的 FileB::Callback 函数不是静态的方式。有办法实现吗?