如下代码应该怎么改,可以在类CA中定义一个函数,在CA::test()中把这个函数赋给_funcList.pFunc_1 ,定义的这个函数不能是静态成员函数
typedef int (*func_1)(int param1,int param2);
typedef struct stFuncList
{
func_1 pFunc_1;
} FuncList;
int Fun_Init(FuncList* pExtFuncList)
{
return 0;
}
class CB
{
public: void test() {}
};
class CC
{
public:
CB* m_b;
};
class CA : public CC
{
int fun1(int param1, int param2)
{
m_b->test(); // 定义的函数要使用类CB中的函数test(),所以不能是静态成员函数
return 0;
}
public:
int test()
{
FuncList _funcList;
_funcList.pFunc_1 = fun1; // 在类CA中定义一个函数,可以赋值给_funcList.pFunc_1
int iret = Fun_Init(&_funcList);
}
};