代表类成员函数类型的函数指针类型

本文探讨了函数指针的基本概念及其在C++中如何应用于类成员函数。通过实例介绍了普通函数指针与成员函数指针的区别,并展示了成员函数指针的定义与使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以前一直以为函数指针类型就是只有这种样式的,即

void (*PFUN_SAVE)(void*);

那么PFUN_SAVE就是可以表示void fun(void*param),void get(void*param)这种实际的函数,PFUN_SAVE pFn = &(fun),pFn = &(get);

但是,对于类成员函数,由于编译器在编译时会将函数的参数默认加上this参数,同时将其改为全局函数类型,即

void MyClass::Save(void* param);会变成void SaveMyClass(MyClass* this, void* param);

那么像PFUN_SAVE就不能用来保存MyClass的Save函数的地址了。

今天,在看别人的代码是看到了一个用来表示成员函数的函数指针类型,写法也很简单,如下

void (MyClass::*PFUN_SAVE)(void*);

即可用来保存一个对象的成员函数了

PFUN_SAVE saveFun = &(obj.Save);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值