代表类成员函数类型的函数指针类型
2018-01-24 14:59
246 查看
以前一直以为函数指针类型就是只有这种样式的,即
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);
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);
相关文章推荐
- 指针类型作为成员函数的参数
- 指针类型作为成员函数的参数
- 用指针类型作为成员函数的参数
- 成员函数指针和其他类型的强制转换,使用一般指针调用成员函数
- C语言学习6 :指针的定义,指针类型要合法,指针要初始化,指针做函数参数,数组和指针的通用性,指针+1所代表的空间,void * 指针,交换函数中的指针,数组和字符型指针区别,字符型指针的应用,使用指针完成字符操作函数
- 指向成员函数的指针类型成员变量
- 成员函数类型 成员函数指针
- C++ 学习笔记(19)new/delete表达式、定位new、typeid、dynamic_cast、type_info、枚举类型、成员函数指针、union、位域、volatile限定符、链接指示
- 指针类型作为成员函数的参数
- Item 45: 利用成员函数模板接受所有兼容类型(智能指针的部分实现)
- 6-2-b 指针类型作为成员函数的参数
- 从指向类成员函数的指针看指针的“类型”
- 常成员函数返回指针的类型
- 成员函数中隐含的this指针的类型
- 6-2 程序填空(指针类型作为成员函数的参数)
- 指针类型作为成员函数的参数
- 关于空指针类型的类变量的成员函数访问的问题
- 项目二.2(指针类型作为成员函数的参数)
- C++非静态成员函数的this指针
- C语言大世界—————08指针类型(函数指针)上