指向普通函数的函数指针
函数原型:void func(int n){cout<<"hello "<<n<<endl;}
定义一个函数指针指向func:void (*p)(int) = &func 或者void (*p)(int) = func ;
也可以这样定义: typedef void (*FUNC_POINT)(int); FUNC_POINT p = func;
调用方法:p(2); 或者 (*p)(3);
指向普通函数的函数指针数组
#define NUM 10
void (*p[NUM ])();
for (int i = 0; i < NUM; i++)
p[i] = func(i);
这样就把函数指针数组中NUM个指针全部指向func。
调用方法: p[i](2);或者 (*p[i])(3);
指向类非静态成员函数的函数指针
class A
{ ……
void func(int);
……
};
定义指针:void (A::*p)(int) = &A::func; //不可void (A::*p)(int) = A::func;
也可以这样定义: typedef void (A::*FUNC_POINT)(int); FUNC_POINT p = &A::func;
调用方法: A a;
(a.*p)(2); //不可(a.p)(2)
指向类静态成员函数的函数指针
class A
{ ……
static void func(int);
……
};
定义指针:void (*p)(int) = &A::func; 或者void (*p)(int) = A::func;
也可以这样定义: typedef void (*FUNC_POINT)(int); FUNC_POINT p = A::func;
调用方法: p(2); (*p)(3);