0
这个问题介于理论与实践之间。在C++中分配回调函数
我有一个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,我正试图像这样给它分配回调函数。
FileB.h
class FileB
{
public:
static void Callback(MyEvent event, uint8 val);
protected:
/**Protected members */
private:
/**Private members */
MyStruct myStruct;
};
FileB.cpp
bool FileB::Start()
{
myStruct.FileAcb= FileB::Callback;
return true;
}
void FileB::Callback(MyEvent event, uint8 val)
{
//do some stuff here.
}
而这个工作。不过,我正在寻找一种方式来写这条线:在某种程度上,让我FILEB
myStruct.FileAcb= FileB::Callback;
::回调函数不被静电。有没有办法实现这一点?
“我有一个C文件(我们称它为fileA.c和fileA.h)” - 根据是否将头文件计为C文件(在“C语言”的意义上),或者使得两个C文件或一个不相关。无论如何,那不是C! – Olaf
@Olaf我想在这种情况下,我给了无关的信息。最终,我关心的是FileA.h中的typedef结构。 –
您是否在网上搜索关于您的问题? ^^ https://www.google.de/search?q=cpp+Callback+function+to+NOT+be+static.&ie=utf-8&oe=utf-8&gws_rd=cr&ei=_MiwVtqYF4fcO6f4s8gM –