-
声明函数指针类型
typedef void (MainWindow::*pFuns)(void);
-
函数声明
void test1(); void test2();
-
数组定义并赋值
pFuns testFuns[2] = { &test1, &test2 };
-
通过函数指针数组调用函数
(this->*funs[0])();
注意:一定要加上this
-
完整测试代码
#include <QMainWindow> #include <QDebug> class MainWindow; typedef void (MainWindow::*pFuns)(void); class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr){ (this->*testFuns[0])(); (this->*testFuns[1])(); } ~MainWindow(){} void test1(){qDebug()<<"test1";} void test2(){qDebug()<<"test2";} pFuns testFuns[2] = { &test1, &test2 }; };
-
测试结果