函数指针

关于函数指针有个比较牛逼的文章:

http://blog.youkuaiyun.com/wj_1986/article/details/6567545/

假定我们有个调用函数:

void fun(char, int)

{

...

}

1.定义一个函数指针:

void (*pf)(char, int);

赋值:pf = fun;或者pf=&fun;

调用:pf(..);或者(*pf)(..);

2.定义一个函数指针类型:只是将函数指针定义成类型,实体用法跟上面一样

typedef void (*pf)(char, int);

pf uFun;

赋值:uFun = fun;或者uFun=&fun;

调用:uFun(..);或者(*uFun)(..);

3.定义类的函数指针类型:

class a;
typedef int (a::*xxx)(void);//指定xxx只能指向a的成员函数
class a
{
public:
        xxx myint;
        a():myint(&a::func){}
        int func(void){printf("%s,%d\n",__FILE__,__LINE__);}
        void func2(void){(this->*myint)();}//调用必须使用对象

        static void func3(void){printf("%s,%d\n",__FILE__,__LINE__);}

};

a usec;

void (*pf)(char, int) = a::func3或者&a::func3;//func3是静态的可以直接使用。

typedef int (a::*xxx)(void);//指定xxx只能指向a的成员函数

xxx uxxx= &a::func;//不是静态函数必须使用&

调用:(usec.*uxxx)();//必须使用对象来调用该函数指针。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值