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 –