#include
<
iostream
>
using namespace std;
class Test
... {
public:
typedef void (Test::*Fun)(int);
void test1(int a)
...{
cout<<"this is test1"<<endl;
}
void test2(int a)
...{
cout<<"this is test2"<<endl;
}
static int test3()
...{
cout<<"this is test3"<<endl;
return 1;
}
} ;
int main()
... {
Test::Fun f;
Test test;
f = Test::test1;
(test.*f)(3);
f = Test::test2;
(test.*f)(3);
int (*f3)();
f3 = Test::test3;
f3();
return 0;
}
using namespace std;
class Test
... {
public:
typedef void (Test::*Fun)(int);
void test1(int a)
...{
cout<<"this is test1"<<endl;
}
void test2(int a)
...{
cout<<"this is test2"<<endl;
}
static int test3()
...{
cout<<"this is test3"<<endl;
return 1;
}
} ;
int main()
... {
Test::Fun f;
Test test;
f = Test::test1;
(test.*f)(3);
f = Test::test2;
(test.*f)(3);
int (*f3)();
f3 = Test::test3;
f3();
return 0;
}
因为静态成员函数的执行和类的对象无关,也没有隐藏的对象指针参数,使用时和普通的C函数指针一样。非静态成员函数,因为有隐藏的对象指针参数,执行时需要一个类对象。