项不会计算为接受 一 个参数的函数 求解决

项不会计算为接受 1 个参数的函数 求解决
本帖最后由 dengchaozhu 于 2015-01-16 20:13:47 编辑
class AAA
{
        typedef struct BB{
        VOID (AAA::*NOTEPAD)(DWORD);       //类成员函数指针
        DWORD SS;
        DWORD SSS;

       };
      typedef struct CC{
      BB** WW;
      };
    CC* OO;
    VOID  TEST();
};

VOID AAA::TEST()
{
    OO->WW[0]->NOTEPAD(1);
}

有点乱 不过代码就是这样 VS2008提示 项不会计算为接受 1 个参数的函数 这是 求代码神农帮忙看看 急!!
------解决思路----------------------

class AAA
{
typedef struct BB{
VOID (AAA::*NOTEPAD)(DWORD);       //类成员函数指针
DWORD SS;
DWORD SSS;

};
typedef struct CC{
BB** WW;
};
CC* OO;
VOID  TEST();
VOID Func(DWORD d)
{
printf("%d", d);
}
};

VOID AAA::TEST()
{
OO->WW[0]->NOTEPAD = &AAA::Func;
(this->*(OO->WW[0]->NOTEPAD))(1);
}



类的成员函数指针要这样用:
(类的对象指针->*类成员函数指针)(参数);

(类的对象.*类成员函数指针)(参数);

另外不管是什么函数指针,在调用前都得对它赋值,让它指向一个确切的函数