我想在C++中做一個簡單的回調,但我遇到了問題,因爲我想。C++將成員函數傳遞給另一個類
基本上我想是這樣的:
class A{
void A::AddCallback(void (*callBackFunction)(string)){
/*Code goes here*/
}
}
和B類
#include "A.h"
class B{
B::B(){
A childObject;
childObject(MyCallBackFunction);
}
B::MyCallBackFunction(string arg){
/*Code goes here*/
}
}
我知道,通常你會想要的東西,如B::callBackFunction
定義AddCallback
的頭,但我確實需要導入A
在B
所以我很難讓兩個類互相導入。我知道我已經看到了這一點,但我不能得到正確的語法
最後一部分表明你想知道如何解決循環依賴問題;如果是這樣,請參閱這些答案的結尾:http://stackoverflow.com/a/628079/5386374&http://stackoverflow.com/a/4757718/5386374 [具體來說:如果Ah不需要知道B的內部詳細信息,在'Ah'中向前聲明'B',在'A.cpp'中''包括'Bh'',在'Bh'中''包括'Ah''。如果B.h不需要知道A,則在'B.h'中向前聲明'A',在'B.cpp'中''包括'A.h「',在'A.h'中向'#include」B.h「'聲明。或者兩者:在'B.h'中向前聲明'A',在'A.h'向前聲明'B',並在''.cpp'文件中放入'#include's。] –