美文网首页
类中函数指针

类中函数指针

作者: dhz120 | 来源:发表于2020-04-14 12:40 被阅读0次

简单说明

  1. 类中函数指针声明, e.g. using pFunc = void (ClassName::*)();
  2. 将函数指针保存到对应的容器中去 e.g. map[key] = &ClassName::funcName
  3. 调用对应的函数 e.g. (this->*pFunc)()

示例

#ifndef PFUNCDEMO_H
#define PFUNCDEMO_H

#include <unordered_map>
#include <iostream>


namespace T16_NS {

using namespace std;

// 限定作用域的枚举
enum class OperType
{
    OPER_TYPE_1,
    OPER_TYPE_2,
};

class Hello
{
    // 声明函数指针别名, 注意需要 类名::
    using workFunc = void (Hello::*)();

public:
    Hello() {
        // 初始化函数指针
        m_workMap[OperType::OPER_TYPE_1] = &Hello::dowork1;
        m_workMap[OperType::OPER_TYPE_2] = &Hello::dowork2;
    }

public:
    void dowork(const OperType &key) {
        auto it = m_workMap.find(key);
        if (it == m_workMap.end())
        {
            return;
        }

        // 调用对应函数, 注意 需要this->*去调用
        (this->*(it->second))();
    }

private:
    void dowork1() { cout << "....dowork1....\n"; }
    void dowork2() { cout << "....dowork2....\n"; }

private:
    unordered_map<OperType, workFunc> m_workMap;
};


void test()
{
    Hello hello;
    hello.dowork(OperType::OPER_TYPE_2);
    hello.dowork(OperType::OPER_TYPE_1);
}

} // T16_NS

相关文章

  • 类中函数指针

    简单说明 类中函数指针声明, e.g. using pFunc = void (ClassName::*)(); ...

  • 智能指针

    原理: 智能指针是一个类,这个类的构造函数中传入一个普通指针,析构函数中释放传入的指针。智能指针的类都是栈上的对象...

  • 第二周、如何定义一个类

    1、类分为带指针的类和不带指针的类 不带指针类的写法: 带指针类的写法: 2、构造函数、析构函数 3、拷贝构造函数...

  • 回调函数

    函数指针 (1) 函数指针是指指向函数而非指向对象的指针。像其它指针一样,函数指针也指向某个特定的函数类型,函数类...

  • IMP 和 SEL 区别

    SEL:类成员的方法指针,不同于C中的函数指针,SEL只是一个编号。 IMP: 函数指针,指向我们定义的函数 SE...

  • C++

    框架: 构造函数: 继承中的访问控制: 不允许重载的符号: 成员指针与成员函数指针: const的限定: 类中静态...

  • C++面向对象编程 第二周笔记 GeekBand

    本周学习了带指针类的写法 带指针类中的三个特殊函数 1.拷贝构造函数:又称复制构造函数,是一种特殊的构造函数,它由...

  • 3月7日复习C++

    指针函数和函数指针 指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针 类型标识符 *...

  • C++supplement之指针函数与函数指针

    ●指针函数:本质为函数,函数返回类型是某一类型的指针。 e.g.: int *f() ●函数指针:本质为指针,其指...

  • (转载)c++中怎么自定义事件监听(回调函数)

    原文出处 这里用到了函数指针(即指向函数的指针),我们要监听A类中的成员变量a,我们定义A类的时候就增加一个将来要...

网友评论

      本文标题:类中函数指针

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