C++ 类的成员函数指针 ( function/bind )
这个概念主要用在C++中去实现"委托"的特性. 但现在C++11 中有了 更好用的function/bind 功能.但对于类的成员函数指针的概念我们还是应该掌握的.
类函数指针 就是要确定由哪个 类的实例 去调用 类函数指针所指的函数.
typedef void (Human::*fp)(); 定义了一个类的函数指针.
fp classFunc = &Human::run; // 注意这里是方法的地址.告之具体的指向类中的哪个函数
(human->*p)(); 或 (human.*p)(); // 这是使用一个类的实例去调用类的函数指针 *p 就是取得方法的地址 然后再调用..
1 #include <iostream> 2 using namespace std; 3 4 class Human { 5 public: 6 virtual void run() = 0; 7 virtual void eat() = 0; 8 }; 9 10 class Mother : public Human { 11 public: 12 void run() { 13 cout << "Mother Run" << endl; 14 } 15 void eat() { 16 cout << "Mother eat" << endl; 17 } 18 }; 19 20 class Father : public Human { 21 public: 22 void run() { 23 cout << "Father run" << endl; 24 } 25 void eat() { 26 cout << "Father eat" << endl; 27 } 28 }; 29 30 typedef void (Human::*fp)(); 31 32 int main() { 33 // 创建一个类的实例 34 Human* human = new Father(); 35 // 定义一个类函数指针 36 fp p; 37 // 给类函数指针赋值 38 p = &Human::run; 39 // 调用类的函数指针 40 (human->*p)(); 41 return 0; 42 }
转载于:https://www.cnblogs.com/easyfrog/p/3395429.html
C++ 类的成员函数指针 ( function/bind )相关推荐
- 类的成员函数指针(比较深入)
From:http://blog.csdn.net/hairetz/archive/2009/05/06/4153252.aspx 个人感觉对于类的成员函数指针这块讲解的比较深入详细 推荐阅读 / 先 ...
- 一般函数指针和类的成员函数指针
转载请注明原文网址: http://www.cnblogs.com/xianyunhe/archive/2011/11/26/2264709.html 函数指针是通过指向函数的指针间接调用函数.函数指 ...
- 类的成员函数指针和mem_fun适配器的用法
先来看一个最简单的函数: void foo(int a) {cout << a << endl; } 它的函数指针类型为 void (*)(int); 我们可以这样使用: vo ...
- 类的成员函数指针和静态成员函数指针 调用成员函数***
C++提供static这个关键词对静态成员进行声明,静态成员函数和类的实例化无关,对于同一类来说,静态成员函数是所有类的对象共享的.而普通成员函数需要实例化才能调用,对于每一个实例来说,普通成员函数是 ...
- c++中的类成员函数指针
c++中的类成员函数指针 文章目录 c++中的类成员函数指针 发生的事情 正常的函数指针定义 定义类的成员函数指针 std::function 发生的事情 最近,想用一个QMap来创建字符串和一个函数 ...
- 成员函数指针与高性能的C++委托 (Member Function Pointers and the Fastest Possible C++ Delegates)...
标准C++中没有真正的面向对象的函数指针.这一点对C++来说是不幸的,因为面向对象的指针(也叫做"闭包(closure)"或"委托(delegate)")在一些 ...
- C++普通函数指针和类成员函数指针
举例1:普通函数指针: int(*fun)(double, int);fun = [](double a, int b) {cout << a << endl;cout < ...
- 怎么将一个类的成员函数作为指针传递给另一个类的成员函数
今天帮同学解决了一个问题,怎么把一个类的成员函数作为指针传递给另一个类的成员函数. 以前只接触过C语言中的函数指针: #include <iostream.h> void add(int ...
- C++ 类成员函数指针数组应用(一)
前言 阅读本文之前你需要明确知道函数指针和普通函数的区别,对这两者本文不做过多说明 目标 使用函数指针数组建立一套bpm工作流框架.这套框架在各种oa以及某几个大型通信公司应用的很广泛 适应场景 多分 ...
最新文章
- 降噪自动编码器:DAEs
- SQL查询数据库结构信息
- linux脚本定时运行脚本,linux定时运行命令脚本——crontab
- python安装第三方扩展包_【Python】pip - 安装第三方包的神器
- 异步调用结果的获取(转)
- Squid服务器配置
- 容器云平台在传统企业落地的一些思考和探索
- 2009年高考作文------拉风篇
- python有哪些用途-Python是什么 Python的用处
- Java实现的FTP协议断点续传功能(上传/下载)通用类
- html中radio实现互斥
- Java反编译工具使用对比,最好用的Java反编译工具 --- JD-GUI、XJad
- 计算机怎么改鼠标标志,win10系统电脑的鼠标图标怎么修改
- 计算机共享文件登录人员记录,如何查看共享文件夹的访问记录,查看共享文件访问日志?...
- 济南连续4年蝉联中国领军智慧城市,这六点是关键
- Android 基于google Zxing实现二维码 条形码扫描,仿微信二维码扫描效果
- Core Java笔记------来自达内项目经理穆笛
- 修改flinksql已经定义表的表结构
- 前后端分离项目-我爱蜗家网站平台
- 航天信息Aisino TY-600+K 打印机驱动