//PointtoMemberFunction.cpp:Defines the entry point for the console application.//#include"stdafx.h"#include<IOSTREAM>using namespacestd;classa{ Public: voidf () {cout<<"f ()"<<Endl; } Virtual voidg () {cout<<"g ()"<<Endl; } Static voidh () {cout<<"h ()"<<Endl; }};intMainintargcChar*argv[]) {A*PA =NewA; typedefvoid(A::* PFUNCF) (void); PFUNCF TESTF= &A::f;//printf ("%d\n", TESTF);(pa->*testf) (); typedefvoid(A::* PFUNCG) (void); As with normal member functions PFUNCG TESTG= &a::g;//printf ("%d\n", TESTG);(pa->*TESTG) (); typedefvoid(*pfunch) (void);//static in a class is considered a general function, except for the following line, which adds a::, the rest is the same as the general functionPfunch testh = &a::h;//printf ("%d\n", testh);(*testh) (); When used, you do not need a::, same as the general function pointerreturn 0;}
Pointer to member function pointers, virtual function pointers, static member function pointers