如何传递类成员函数的指针
来源:互联网 发布:网络创业培训的目的 编辑:程序博客网 时间:2024/05/17 07:23
需求:
在类A里面,有一组规格相同的函数;
类B中有一个成员F为A中成员函数的指针,在构造B对象时对该成员F进行初始化,然后在Do函数中调用此函数指针所对应的函数。
为实现这个目的,需要怎么做呢。
|
|
这里需要用到C++的一个特性:成员函数指针。这个特性一般很少用到,所以感觉比较晦涩,使用要点如下:
1. 使用typedef来定义A成员函数指针的类型:
typedef void (A::* FunC)();
这里将FunC定义为A类中返回值类型为空,参数列表为空的函数指针。
2. 在B中声明
FunC F; //将F声明为一个A中成员函数的指针。
3. 声明B的构造函数
B (A* a, Func f) { pA = a; F = f;}
4. Do中调用如下:
(pA->*F)();
5. 外部构造A、B对象,并进行方法调用。
A a;
B b1(&a, &A::F1);
B1.Do(); //这其中就会把F1调用起来。
B b2(&a, &A::F2);
B2.Do(); //这其中就会把F2调用起来。
特别说明:
C++的成员函数都隐含了一个this参数,也就是说要调用类对象的成员函数,首先必须要有该类的对象,正因此,才在B的构造函数中把A对象地址传了进去。
- 如何传递类成员函数的指针
- 如何传递成员函数指针参数
- 向普通函数传递类成员函数指针的问题
- 向普通函数传递类成员函数指针的问题
- this指针在类的成员函数中的传递
- 传递模板类的成员函数指针及static成员函数
- 类的成员函数指针作为参数传递给其他函数和普通函数指针的传递是不同的
- 类的成员函数指针作为参数传递给其他函数和普通函数指针的传递是不同的
- 函数指针传递的两种环境(全局函数与类成员函数)
- 成员函数指针作为参数传递给其他函数和普通函数指针的传递
- 如何定义一个类成员的指针(成员变量或成员函数)
- 如何使用c++的成员函数指针
- 类成员函数的指针
- 类的成员函数指针
- 类的成员函数指针
- 类的成员函数指针
- 类成员函数的指针
- 如何声明类成员函数指针?
- MAP文件格式小注
- 符号文件
- Windows模块加载基址与地址计算
- 看ACE如何劫持main函数
- 初学S60,常见问题记录
- 如何传递类成员函数的指针
- UML中的“关系”总结
- Boost 库的编译
- Eclipse+CDT+MinGW+QT开发环境搭建
- [转载]深入了解字符集和编码
- C++:获取类成员的偏移量
- QT:“无法定位程序输入点……”
- boost.asio 学习笔记01——概述
- boost.asio 学习笔记02——io_service类