| #include <stdlib.h> typedef void (*Function1)( ); //定义一个函数指针类型。 Function1 f1; class Test1 { public: //…被调用的成员函数。 void Memberfun1( ){ printf("%s \n","Calling Test3::Memberfun2 OK");}; // void Memberfun2() { f1=reinterpret_cast<Function1>(Memberfun1);//将成员函数指针赋予f1。编译出错。 f1(); } //… }; int main() { Test1 t1; t1.Memberfun2(); return 0; } |
| #include <stdlib.h> class Test2 { private: int data[2]; //… public: //… int __cdecl Compare(const void* elem1, const void* elem2) //成员函数。 { printf("%s \n","Calling Test2::Memberfun OK"); return *((int*)elem1)- *((int*)elem2) ; } void Memberfun() { data[0]=2; data[1]=5; qsort( data, 2, sizeof(int), Compare); //标准库函数调用成 //员函数。编译出错。 } //… }; int main( ) { Test2 t2; t2.Memberfun(); //调用成员函数。 return 0; } |
关注此文的读者还看过: