函数指针数组调用问题
函数指针定义:
typedef int (Srvs_SERV90::*STATUSPROC)(Srvs_SERV90_Cmd *cmd);
在类Srvs_SERV90中定义:
class Srvs_SERV90
{
......
STATUSPROC m_statusProcFunc[99];
......
int st_IDLE_process(Srvs_SERV90_Cmd *cmd);
int st_DCALL_process(Srvs_SERV90_Cmd *cmd);
int st_CBIND_process(Srvs_SERV90_Cmd *cmd);
......
};
给函数指针数组赋值:
m_statusProcFunc[0] = & Srvs_SERV90::st_IDLE_process;
m_statusProcFunc[1] = & Srvs_SERV90::st_DCALL_process;
m_statusProcFunc[2] = & Srvs_SERV90::st_CBIND_process;
然后在调用的时候出了问题:
住:m_state为一个整数
若这样调用:ret = (*m_statusProcFunc[m_state])(cmd);
编译时报错:invalid use of `unary *' on pointer to member
若这样调用:ret = m_statusProcFunc[m_state](cmd);
编译时报错:must use .* or ->* to call pointer-to-member function in `
this->Srvs_SERV90::m_statusProcFunc[(this->Srvs_SERV90::m_state)]
(...)'
用的是g++的编译器
请问我到底该怎么调用呢?
谢谢!