我想实现一个具有函数的类,该函数能够从调用该函数的对象回调方法,而不需要有关它的信息。
想象一下,我们想要从Game
回调类Library
的某些方法:
void Game::display(string a) {
cout << a << endl;
}
int Game::sum(int a, int b) {
return a + b;
}
void Game::start() {
lib = new Library();
lib->doSomething(/* somehow pass information about the functions*/);
}
然后:
void Library::doSomething(list_of_callbacks L /*or something like this*/) {
L[0]("hi"); //L[0] is Game::display
L[1](2,3); //L[1] is Game::sum
}
它不仅需要与Game
一起工作,还需要与任何课程一起工作。我们想要回调的方法可能需要访问对象的属性(因此不一定是静态的)。
我对C++
有点新鲜;我现在几个小时都在搜索这个主题,但在大多数情况下,返回类型或所有回调方法的参数都是相同的。我尝试过使用模板和std::function
/ std::bind
,但未成功。
谢谢,对不起,如果我没有说清楚,那是我在这里的第一篇文章。
编辑:
doSomething
函数将由外部工具生成(翻译),该工具包含有关函数列表的信息(例如,L [0]中的函数采用这些参数或其他参数等)
如果我提出的问题无法在C ++中完成,那么<em> 任何 以其他方式实现相同的目标是不是 能够从来电者那里获取信息吗?