我想在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。] –