美文网首页
C++类成员函数指针

C++类成员函数指针

作者: 选牌 | 来源:发表于2020-04-09 17:59 被阅读0次

函数指针可以写成return_type (func_name)(args...),由于类静态函数和全局函数类似,可以用函数指针来调用,对于成员函数,则需要定义成return_type (T::func_name)(args...) [const]

#include <vector>
#include <iostream>
#include <map>
using namespace std;

class MemberFuncTest{
public:
    int add(int a, int b){
        return a + b;
    }

    int dec(int a, int b){
        return a - b;
    }

    int mul(int a, int b){
        return a * b;
    }

    int div(int a, int b){
        return a / b;
    }

    static int test_static(){
        cout<<"I am static func"<<endl;
    }
};

typedef int (MemberFuncTest::*func)(int, int);
map<int, func> func_mp = {{1, &MemberFuncTest::add}, {2,&MemberFuncTest::dec},
                          {3,&MemberFuncTest::mul}, {4, & MemberFuncTest::div}};
//静态成员函数和
typedef int (*func_static)();

int test1(MemberFuncTest m, int a, int b, int type){
    return (m.*func_mp[type])(a, b);
}

int test1(MemberFuncTest* m, int a, int b, int type){
    return (m->*func_mp[type])(a, b);
}

void test2(func_static f){
    f();
}

int main(){
    for(int i = 1;i <= 4; i++){
        cout<<test1( MemberFuncTest(), 6, 2, i)<<" ";
        cout<<test1(new MemberFuncTest(), 6, 2, i)<<endl;
    }
    test2(MemberFuncTest::test_static);
}

相关文章

  • C++类成员函数指针

    函数指针可以写成return_type (func_name)(args...),由于类静态函数和全局函数类似,可...

  • 1.2.09_C++ 指向类的指针

    C++ 类 & 对象 一个指向 C++ 类的指针与指向结构的指针类似,访问指向类的指针的成员,需要使用成员访问运算...

  • C++ - this 指针

    从 C++ 程序到 C 程序的翻译 作用就是指向成员函数所作用的对象 this 指针作用 在类的非静态成员函数中,...

  • C++——指向类成员(数据函数)的指针

    一、指向类数据成员的指针 二、指向类成员函数的指针 三、总结

  • C++ 指向类的指针

    原文地址:C++ 指向类的指针 一个指向 C++ 类的指针与指向结构的指针类似,访问指向类的指针的成员,需要使用成...

  • c++中类的成员函数指针

      在c++中,使用函数指针的时候,我一般使用静态成员函数的指针。另外,还有一种普通成员函数的指针,我用的比较少。...

  • 王道程序员求职宝典(十二)类

    类 访问标记(修饰符)publicprivateprotected 类成员简介成员函数this指针构造函数默认构造...

  • [初学C++]构造和析构函数

    什么是构造函数定义C++中的类可以定义与类名相同的特殊成员函数,这种与类名相同的成员函数叫做构造函数.C++对类提...

  • C++类 --- 类型转换构造函数、运算符,类成员指针

    今天呢,和大家聊一聊C++中的类型转换构造函数、类型转换运算符(函数)以及类成员指针。简单的来讲,类型转换构造函数...

  • 类&对象(一)

    C++成员函数 类的成员函数是指那些把定义和原型写在类定义内部的函数,就像类定义中的其他变量一样。类成员函数是类的...

网友评论

      本文标题:C++类成员函数指针

      本文链接:https://www.haomeiwen.com/subject/uuqhmhtx.html