C++类成员函数指针获取

C++类成员函数指针获取

在C++开发中,我们经常会遇到需要获取类成员函数中的指针,这个是大家都比较熟悉的;

那么如果类成员函数是重载的,应如何获取指定类成员函数指针呢,示例C++代码如下:

class GLWidget {
public:
    void update(int a, int b);
    void updata();
private:
    // ...
};


#include <QObject>
#include <QTimer>

int main()
{
    const int updateMilliSec = 10;
    
    QTimer timer;
    timer.start(updateMilliSec);
    
    GLWidget glWidget;
    
    typedef void (GLWidget::*PtrTypeUpdate1)(int, int);
    using PtrTypeUpdate2 = void (GLWidget::*)(void);
    
    PtrTypeUpdate1 ptrUpdate1 = static_cast<PtrTypeUpdate1>(&GLWidget::update);
    PtrTypeUpdate2 ptrUpdate2 = static_cast<PtrTypeUpdate2>(&GLWidget::update);
    
    QObject::connect(&timer, &QTimer::timeout, &glWidget, ptrUpdate1); 
    
    // ...
    
    return 0;
}

本文作者: 王同学