首页 > 编程语言 >C++类中封装指针函数

C++类中封装指针函数

时间:2024-05-22 23:07:05浏览次数:29  
标签:callFunctionPointer obj void 封装 C++ MyClass 函数指针 成员 类中

 

 

class MyClass {
public:
    void func1() {
        // 实现
    }
    
    void func2() {
        // 实现
    }
    
    // 成员函数指针类型
    typedef void (MyClass::*MemberFuncPtr)();
    
    // 一个成员函数指针成员变量
    MemberFuncPtr ptrFunc;
    
    // 设置成员函数指针
    void setFunctionPointer(MemberFuncPtr func) {
        ptrFunc = func;
    }
    
    // 调用通过成员函数指针指定的函数
    void callFunctionPointer() {
        (this->*ptrFunc)(); // 使用成员指针调用成员函数
    }
};

int main() {
    MyClass obj;
    obj.setFunctionPointer(&MyClass::func1);
    obj.callFunctionPointer(); // 调用func1
    
    obj.setFunctionPointer(&MyClass::func2);
    obj.callFunctionPointer(); // 调用func2
    
    return 0;
}

 

 

 

###########################

标签:callFunctionPointer,obj,void,封装,C++,MyClass,函数指针,成员,类中
From: https://www.cnblogs.com/herd/p/18207337

相关文章

  • C++高性能服务器框架—协程模块
    协程模块概述一、概念可以简单的认为:协程就是用户态的线程,但是上下文切换的时机是靠调用方(写代码的开发人员)自身去控制的;对比首先介绍一下为什么要使用协程。从了解进程,线程,协程之间的区别开始。从定义来看进程是资源分配和拥有的基本单位。进程通过内存映射拥有独立的代......
  • C++实现128位整数类
    如何编写一个128位的整数现在的大部分的计算机编程语言都包含了64位的有符号整数和无符号整数,有的甚至还提供了128位的整数和大数,比如:\(C\#\):System.Int128,System.UInt128\(Rust\):i128,u128但是在C/C++中并未发现uint128_t/int128_t,尽管在某些平台下可以看到__int1......
  • [20] C++虚幻引擎热更新
    Day1大纲行为树节点网络PDF网络系统内容Task节点FinishWithResult:MoveDirectlyToWard:PushPawnAction:运行至当前队列节点首节点 RunBehaviorDynamic:动态运行子行为树SetTagCooldown:WaitBlackboardTime:装饰器节点GamePlayTagCondition......
  • 封装 ECharts 为 Vue 组件:X-ECharts 简介
    ECharts是一个广泛使用的开源可视化库,它提供了丰富的图表类型和灵活的配置选项,适用于复杂的数据可视化需求。而X-ECharts是一个基于ECharts封装的Vue组件库,旨在提供更简洁的集成方式,同时兼容Vue2和Vue3,使得开发者能够在不同版本的Vue项目中无缝使用ECharts。Eng......
  • 从立创导出元件原理图、封装、3D模型到AD的方法
    1.导出原理图搜索器件并点击数据手册再点击立即打开原理图里面点击导出AD,即可下载原理图文件将下载文件用AD打开,并生成原理图库将生成的原理图库文件复制到自己的原理图库即可2.导出PCB步骤同上,不再赘述3.导出3D模型这里就不能用网页版立创,在软件立创EDA里面先随便......
  • c++ 语法摘记
    目录c++语法摘记c++获取当前时间的三种方式c++运算符优先级c++语法摘记c++获取当前时间的三种方式c++运算符优先级......
  • C++ - 结构体转cha*
    c++中结构体转cha*在C++中,将结构体转换为char*意味着你想要获取结构体的内存表示,通常用于序列化或者通过网络发送结构体数据。下面是一个简单的例子:#include<iostream>#include<cstring>structMyStruct{inta;doubleb;};char*structToCharAr......
  • c++ L _T()
     字符串前面加L表示该字符串是Unicode字符串。_T是一个宏,如果项目使用了Unicode字符集(定义了UNICODE宏),则自动在字符串前面加上L,否则字符串不变。因此, VisualC++里边定义字符串的时候,用_T来保证兼容性。 VC支持ascii和unicode两种字符类型,用_T可以保证从ascii编码类型转换到un......
  • 一个使用Python加密连接Elasticsearch的简单封装
    依赖:elasticsearch==7.17.9eshelpercore.py:#!/usr/bin/python3#coding=utf-8importdatetimeimportosimportsslfromelasticsearchimportElasticsearchdefget_env()->str:#这里指定查询的环境索引return"uat"defget_output_file_pat......
  • C++ Virtual Functions
    Virtual这个关键字在多态中扮演一个绝对重要的角色,只要memberfunctions声明的前面加上virtual的关键字,他就会成为 Virtualmemberfunctions。任何一个class如果拥有virtualfunctions,就可以得到C++编译器的虚拟机制(virtualmechanism)的服务。这个class的所有derivedclass......