C++ 函数指针为成员函数
在 C++ 中,涉及类或结构的成员函数的函数指针时,使用对象指针或 this 调用对其进行调用。由于它们是类型安全的,因此我们只能使用该类型的指针调用该类的成员(或派生成员)。
示例
#include <iostream> using namespace std; class AB { public: int sub(int a, int b) { return a-b; } int div(int a, int b) { return a/b; } }; //using function pointer int res1(int m, int n, AB* obj, int(AB::*fp)(int,int)) { return (obj->*fp)(m,n); } //using function pointer int res2(int m, int n, AB* obj, int(AB::*fp2)(int,int)) { return (obj->*fp2)(m,n); } int main() { AB ob; cout << "Subtraction is = " << res1(8,5, &ob, &AB::sub) << endl; cout << "Division is = " << res2(4,2, &ob, &AB::div) << endl; return 0; }
输出
Subtraction is = 3 Division is = 2
广告