1。简单的函数指针
形式: 返回类型 (*函数名)(参数表)
char (*pFun)(int); //定义一个指针变量pFun.它是一个指向某种函数的指针,这种函数参数是一个int型,返回值是char类型。
char glFun(int a){ return 'a';}//定义函数glFun()。函数的函数名实际上就是一个指针,函数名指向该函数的代码在内存中的首地址。
void main()
{
pFun = glFun;
(*pFun)(2);
}
2。使用typedef更直观更方便
形式: typedef 返回类型(*新类型)(参数表)
typedef char (*PRTFUN)(int)
PRTFUN pFun;
char glFun(int a){return 'a';}
void main()
{
pFun = glFun;
(*pFun)(2);
}
3.在c++类中使用函数指针。
形式: typedef 返回类型(类名::*新类型)(参数表)
class Screen
{
public:
char lcFun(int a){return 'a'};
};
Screen screen;
typedef char (Screen::*PTRFUN)(int);
PTRFUN pFun;
void main()
{
pFun = Screen::lcFun;
cout << (screen.*pFun)(2)<<endl; //需要加括号,因为()的优先级大于.
}
或:
class Screen
{
public:
char lcFun(int a){return 'a'};
};
typedef char (Screen::*PTRFUN)(int);
PTRFUN pFun;
void main()
{
Screen *screen = new Screen;
pFun = Screen::lcFun;
cout << (screen->*pFun)(2)<<endl; //需要加括号,因为()的优先级大于->
delete screen;
}