C++函数指针是一种特殊的指针,它指向一个函数而不是一个变量。它可以用来在不同的函数之间传递指针,以便在运行时调用函数。类成员函数指针是指向类成员函数的指针,它允许你在运行时调用类成员函数。
函数指针的定义
要定义一个函数指针,需要声明一个函数指针变量,其格式如下:
typedef 返回类型 (* 函数指针变量名) (参数类型列表);
其中,返回类型是函数的返回类型,函数指针变量名是指针变量的名称,参数类型列表是函数参数的类型列表。例如,要定义一个指向函数f(int, int)的指针变量p,可以使用以下声明:
typedef int (*p) (int, int);
函数指针的使用
要使用函数指针,需要先定义一个函数指针变量,将其赋值为指向函数的指针。例如,要使用指针p,可以使用以下语句:
p = f;
还可以使用函数指针来调用函数,例如:
int result = p(1, 2);
类成员函数指针的定义
类成员函数指针的定义格式如下:
typedef 返回类型 (类名::* 成员函数指针变量名) (参数类型列表);
其中,返回类型是函数的返回类型,类名是类的名称,成员函数指针变量名是指针变量的名称,参数类型列表是函数参数的类型列表。例如,要定义一个指向类C中的成员函数f(int, int)的指针变量p,可以使用以下声明:
typedef int (C::*p) (int, int);
类成员函数指针的使用
要使用类成员函数指针,需要先定义一个类成员函数指针变量,将其赋值为指向类成员函数的指针。例如,要使用指针p,可以使用以下语句:
p = &C::f;
还可以使用类成员函数指针来调用类成员函数,例如:
C c; int result = (c.*p)(1, 2);