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

遇到一个程序,程序调用类成员函数没有通过对象,而直接写 类::函数
如:
class A
{
}
fun(A::create())
{

}
请问这个怎么回事,没有使用对象 就可以调用类成员函数吗?求解!

第1个回答  2014-08-02

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

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个回答  2014-08-02
如果函数create被修饰为静态函数是可以调用的。你可以看看该函数前面是否有static关键词。本回答被提问者采纳
相似回答