非静态成员函数指针
1. 语法
- 类成员函数指针的定义
定义方式 | 具体定义 |
---|---|
直接定义 | 返回值类型(类名::*函数指针变量类型)(形参…) |
typedef改名字定义 | typedef 返回值类型(类名::*函数指针变量类型)(形参…) |
2. 使用
class A
{
public:
void CallbackFunc(int a)
{
qDebug() << "in A class";
}
};
void Test01()
{
//! 方式一:直接定义函数指针变量类型(非静态)
//! 定义:返回值类型(类型::*函数指针变量)(形参)
void(A::*pCallback)(int a) = &A::CallbackFunc;
//! 使用: (实例.*函数指针变量)(实参) 或者 (实例指针->*函数指针变量)(实参)
A a;
(a.*pCallback)(5);
}
void Test02()
{
//! 方式二:通过关键字typedef定义
typedef void(A::*pCallback)(int a);
//! 定义:
pCallback pCal = &A::CallbackFunc;
//! 使用,(实例.*函数指针变量)(实参)
A a;
(a.*pCal)(6);
}