当前位置: 首页 > news >正文

c++ 指向类成员函数的函数指针

// ConsoleApplication34.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
using namespace std;

class Parent 
{
public:
    Parent()
    {
        //cout << "我是爹" << endl;
    }
    virtual void print() 
    {
        cout << "我是爹" << endl;
    
    }
private:
    int a;
};
class Child :public Parent 
{
public:
    Child()
    {
    
    }
    void print() 
    {
        cout << "我是儿子" << endl;
    }
private:
    int b;
};

int main()
{
    //返回值类型 (域作用符::*函数指针名称)(方法参数签名) 下面这个是无参的
    //void (Child::*fptr)(); 无参的
    //void (Child::*fptr)(int,int);有参的,自行领悟吧

    //解释:无返回值类型 作用域是属于Child类的函数指针 即:是指向Child类的任何无参成员函数的函数指针
    void (Child::*fptr)();
    //最终绑定 指向 Child类的print函数的函数指针
    fptr= &Child::print;;
    Child arr[] = { Child(),Child(),Child() };
    //Parent *p;
    //Child* c;
    //p = arr;
    //c = arr;
    //p->print();
    //c->print();

    //p++;
    //c++;
    //p->print();
    //c->print();


    //p++;
    //c++;
    //p->print();
    //c->print();

    
    (*arr.*fptr)();  //相当于 arr[0].print();

    (*(arr+1).*fptr)();
    (*(arr + 2).*fptr)();

    system("pause");
    return 0;
}

 

转载于:https://www.cnblogs.com/kexb/p/5539934.html

相关文章:

  • 数组流中的中位数
  • Java——观察者模式实例
  • 连续子数组的最大和
  • 礼物的最大价值
  • 最长不含重复字符的字符串
  • Mac下JDK的安装的配置
  • 第二阶段个人总结09
  • java并发
  • idea中Spring报错Exception in thread main java.lang.ClassCastException
  • How Spring Boot Autoconfiguration Magic Works--转
  • PriorityQueue优先级队列
  • TCP/IP三次握手与四次挥手
  • MySQL的多实例
  • MyBatis
  • 第二阶段冲刺第三天
  • Codepen 每日精选(2018-3-25)
  • JavaScript对象详解
  • JavaScript学习总结——原型
  • Java程序员幽默爆笑锦集
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • magento2项目上线注意事项
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • Python打包系统简单入门
  • React16时代,该用什么姿势写 React ?
  • Solarized Scheme
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 计算机常识 - 收藏集 - 掘金
  • 山寨一个 Promise
  • 深入 Nginx 之配置篇
  • 收藏好这篇,别再只说“数据劫持”了
  • 通过几道题目学习二叉搜索树
  • 线性表及其算法(java实现)
  • 用简单代码看卷积组块发展
  • 阿里云移动端播放器高级功能介绍
  • #传输# #传输数据判断#
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (阿里云万网)-域名注册购买实名流程
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • .dwp和.webpart的区别
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .NET Project Open Day(2011.11.13)
  • .NET 设计模式初探
  • .net打印*三角形
  • .NET单元测试
  • [.net 面向对象程序设计进阶] (19) 异步(Asynchronous) 使用异步创建快速响应和可伸缩性的应用程序...
  • [BZOJ 2142]礼物(扩展Lucas定理)
  • [c++] 什么是平凡类型,标准布局类型,POD类型,聚合体
  • [dart学习]第四篇:函数
  • [hdu2196]Computer树的直径
  • [Java基础] Java中List.remove报错UnsupportedOperationException
  • [JS7] 显示从0到99的100个数字
  • [Kubernetes]2. k8s集群中部署基于nodejs golang的项目以及Pod、Deployment详解
  • [linux]centos7下解决yum install mysql-server没有可用包
  • [LWC小知识] 标准lightning-input-field怎么取得变更值(onchange)