种非静态函数指针传递调用

类非静态函数指针传递调用26行的错误,怎么解决?不能改CallFunc这个类的结构。最好只改call1.#include stdi

类非静态函数指针传递调用
26行的错误,怎么解决?
不能改CallFunc这个类的结构。
最好只改call1.

#include <stdio.h>
class CallFunc;
typedef void (CallFunc::*FP)(int x);

class CallFunc
{
public:
void set(FP fp)
{
m_fp = fp;
//(this->*fp)(5);
}
void show(int x)
{
printf("x = %d\n", x);
}

FP m_fp;
};

CallFunc g_ss;

void call1()
{
g_ss.set(&CallFunc::show);
g_ss.m_fp(5);
}

void main()
{
call1();
}

[解决办法]

(g_ss.*(g_ss.m_fp))(5);