,我写我的代码的简化版本,来说明我的问题的说法。在我的程序中,很多其他的东西都在代码中,这就是为什么我需要在一个类中有一些功能。我不知道如何定义参数,以便最终调用foo的f2。类函数指针作为一个静态函数
我可以有F0的TestClass内,如果它是解决问题的唯一途径,但我不知道怎么写,要么。
#include <iostream>
using namespace std;
class testClass {
public:
void f1();
void f2(int i);
} foo;
void f0(void (*f)(int)) {
(*f)(1337); // f = a pointer to f2, which is sent from f1
}
void testClass::f2(int i) {
cout << i;
}
void testClass::f1() {
f0(&f2);
}
int i;
int main() {
foo.f1(); // I want foo.f1 to call f0 which should call foo.f2()
cin >> i;
}
如果我要删除testClass ::和foo,它将起作用。但由于我不能这样做,我应该如何在f0中正确定义参数?我应该如何正确调用f1内部的f0?
请帮忙!
感谢您的所有支持(随时添加更多),我现在要使用Mats解决方案,因为我没有了解其他解决方案中所有功能的细节。但我不知道哪一个是最便宜的(我正在写一个国际象棋引擎),所以如果你有关于这个问题的答案,请在这里告诉我。:) – user1066278 2015-02-07 22:47:40
附注:声明他们使用的变量,肯定不使用全局变量没有明显原因 – sehe 2015-02-07 22:50:38
我使用递归函数的巨大树,你是否建议我仍然应该使用临时定义的变量或可能全局变量执行更好? – user1066278 2015-02-07 23:15:51