首页 > 其他分享 >函数指针的使用

函数指针的使用

时间:2022-12-19 16:58:04浏览次数:42  
标签:doSomething void call func 使用 函数指针 Method methodptr

在类中的使用案例:

#include <iostream>

class Method;  // forward declaration

class MethodPtr {
 public:
  void (Method::*func)() = nullptr;
};

class Method {
 public:
  Method();
  void doSomething();
  void call();  // will use methodptr
  MethodPtr methodptr;
};

Method::Method() : 
    methodptr{&Method::doSomething}
{}

void Method::call() {
  // dereferencing the function pointer to call it on `this`:
  // auto& p = methodptr.func; // p 指针指向 doSomething 函数地址
  // (this->*p)();
  (this->*methodptr.func)();
}

void Method::doSomething() {
    std::cout << "Did something!" << std::endl;
}

int main() {
  Method method;
  method.call();
}

结果:

Did something!

标签:doSomething,void,call,func,使用,函数指针,Method,methodptr
From: https://www.cnblogs.com/strive-sun/p/16992543.html

相关文章

  • Swagger 2.10.5 使用方法及问题
    由于接手一个项目,用的swagger2.10.5,和其它版本有些不一样,查了好久,因此从头研究学习了一下。参考这篇博客1,导入依赖项到pom.xml  此时swagger.version默认为2.10.......
  • MongoDB 强制使用索引 hint
    转载请注明出处:虽然MongoDB查询优化器一般工作的很不错,但是也可以使用hint()来强迫MongoDB使用一个特定的索引。在这种方法下某些情形下会提升性能。一个有......
  • 深度学习分子模拟软件 DeePMD-kit 开发使用交流会
    简介DeePMD-kit是围绕深度学习分子模拟方法DeepPotential开发的开源科学软件包。发布一年多以来,DeePMD-kit已被国内外多个研究组使用,涉及物理、化学、材料等多个领域。由于......
  • 成端/接续功能使用说明
    在nVisual系统中,接续/成端功能可以高效、准确、清晰的查看熔纤盒内的光纤连接情况。今天小编来给大家介绍一下成端和接续功能的使用。一、成端1. 功能入口成端功能的入口有......
  • 一次 Redis 事务使用不当引发的生产事故
    这是悟空的第170篇原创文章官网:​​http://www.passjava.cn​​你好,我是悟空。本文主要内容如下:一、前言最近项目的生产环境遇到一个奇怪的问题:现象:每天早上客服人员在后......
  • 使用Ratpack与Spring Boot构建高性能JVM微服务
    在微服务天堂中Ratpack和SpringBoot是天造地设的一对。它们都是以开发者为中心的运行于JVM之上的web框架,侧重于生产率、效率以及轻量级部署。他们在服务程序的开发中带来了......
  • Kafka知识总结之生产者简单使用
    一.测试环境搭建引入依赖:<dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>2.8.0</version></dependency>创......
  • 死磕Java多线程之线程池的基本使用与核心原理
    Java多线程之线程池一、线程池的自我介绍1.线程池的重要性(为什么使用线程池)线程池可以应对突然大爆发量的访问,通过有限个固定线程为大量的操作服务,减少创建和销毁线程所需......
  • .NET MQTT客户端SimpleMQTT的使用
    一、说明MQTT客户端组件.NETCore版本,基于新生命团队NewLife.MQTT的单例模式封装,支持.netcore3,.net6/7Github地址:https://github.com/zxzyjs/SimpleMQTT.gitGitee地......
  • [C++] VS Code 中导入MYSQL (包含使用gcc,g++)
    首先安装Gcc1.下载链接:https://sourceforge.net/projects/mingw-w64/files/备用网盘: https://pan.baidu.com/s/1trdQtDO6XqmfCbZHc1IDzQ?pwd=nwh5 2.添加环境变......