读书人

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

发布时间: 2013-01-21 10:15:38 作者: rapoo

类非静态函数指针传递调用
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);

读书人网 >C++

热点推荐