我试图在类中声明一个回调函数,然后在某处我读取的函数需要是静态的,但它没有解释为什么?为什么回调函数在类中声明时需要是静态的
#include <iostream>
using std::cout;
using std::endl;
class Test
{
public:
Test() {}
void my_func(void (*f)())
{
cout << "In My Function" << endl;
f(); //Invoke callback function
}
static void callback_func()
{cout << "In Callback function" << endl;}
};
int main()
{
Test Obj;
Obj.my_func(Obj.callback_func);
}
您的链接已损坏。另外,最好发布实际答案而不是链接。 – 2015-08-21 03:52:06
@BenH感谢您的单挑。改进的答案和固定链接。 – daramarak 2015-08-21 06:57:18
加上一个链接(非常有帮助和易于理解的解释) – 2016-12-29 10:37:21