c++直接调用函数与通过函数指针调用有什么不一样

2025-05-13 16:04:36
推荐回答(2个)
回答(1):

函数指针也可以指向类的成员函数的,调用是需要通过类实例来调用:

typedef int (CTranSession::*BillProc )(char*,char*);
int CTranSession::GetAllBillDetailCDMA( char *sphone,char *scalltime )
{
    int ret = 0;
    BillProc p[8];
    
    p[0] = CDMA_GetMonth;
    p[1] = CDMA_GetLocal;
    p[2] = CDMA_GetWander;
    p[3] = CDMA_GetMessage;
    p[4] = CDMA_Get1XMessage;
    p[5] = CDMA_Get1XFlux;
    p[6] = CDMA_GetMRBT;
    p[7] = CDMA_GetEvVoice;
    
    for( int i = 0;i < 8 && ret != -1;ret = (this->*p[i++])( sphone,scalltime ));
    
    return ret;
}

回答(2):

如果函数create被修饰为静态函数是可以调用的。你可以看看该函数前面是否有static关键词。