typedef定义函数指针

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;

                 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值