void aaa();
void bbb();
void ccc();//都是类成员函数如何在ddd()中创建函数指针数组void *func[] = {...};比如*func[0]()就是执行aaa(),*func[1]()就是执行bbb(),etc...
////
typedef void (*Func)();
Func Common[3];
...做不下去了

解决方案 »

  1.   

    可以用数组
    typedef struct _CMD
    {
    PFNCMD pfncmd;
    } CMD, *LPCMD; CMD _rgcmdMain[] = 

    aaa,
    bbb,
    ccc,
    0 //end

    使用_rgcmdMain[]索引
      

  2.   

    在定义时这样:
    typedef void (yourclassname::*pFunc)(void); //全局地方定义......pFunc p[2];
    p[0] = aaa;
    ......
    即可。
      

  3.   

    class SomeClass;typedef void (SomeClass::* SomeClassFunction)(void);SomeClassFunction func[3];func[0] = aaa;func[1] = bbb;func[2] = ccc;...void ddd(SomeClass *pClass, SomeClassFunction funcptr) 
    {(pClass->*funcptr)(); };
      

  4.   

    继续楼主的代码:
    void ddd()
    {
    Common[0]=aaa;
    Common[1]=bbb;
    Common[2]=ccc;
    .....
    }
    即可
      

  5.   

    Common[0]=aaa; 编译就不通过
      

  6.   

    不好意思,仔细看了一下楼主的贴子,才发现那个aaa,bbb,ccc是类的成员函数.
    这样的话,楼主你的typedef语句就是错的,因为其中没包含类名,现在假设类名为myclass,
    修改1:
    typedef void (myclass::*Func)();
    修改2:
    void ddd()
    {
    Common[0]=myclass::aaa;
    Common[1]=myclass::bbb;
    Common[2]=myclass::ccc;
    .....
    }
    即可
    这里的前提条件当然是那三个函数是类的公有成员.