前提:假设成员函数不访问类的成员变量。
环境:DEV-C++,别的环境有可能编译无法通过。
代码如下:
#include <iostream>
using namespace std;
class A
{
public:
int add(int a, int b)
{
int c = a + b;
return c;
}
};
typedef int(A::*pfun)(int, int);
typedef int(*gfun)(int, int);
int main()
{
{
cout <<"11111...\n";
gfun q;
q = (gfun)A::add;
int c = (*q)(7, 100);
cout << c << endl;
}
{
cout <<"222222...\n";
A a;
pfun q = A::add;
int c = (a.*q)(7, 100);
cout << c << endl;
}
{
cout <<"333333...\n";
A *b = new A();
pfun q = A::add;
int c = (b->*q)(7, 100);
cout << c << endl;
}
return 1;
}
运行结果: