一个指针的显式类型转换问题
有如下一段代码:
#include <iostream.h> class TClassA { public: void Display(const char* text) { cout << text << endl; }; static void Wrapper_To_Call_Display(void* pt2Object, char* text); // more.... }; // 静态包装函数,能够调用成员函数Display(),本身做为回调函数来使用 void TClassA::Wrapper_To_Call_Display(void* pt2Object, char* string) { // 显式类型转换 TClassA* mySelf = (TClassA*) pt2Object; // 调用普通成员函数 mySelf->Display(string); } // 回调函数的宿主,在这里回调用函数被使用 void DoItA(void* pt2Object, void (*pt2Function)(void* pt2Object, char* text)) { // 使用回调函数 pt2Function(pt2Object, "hi, i'm calling back using a argument ;-)"); }// 执行示例 void Callback_Using_Argument() { TClassA objA; DoItA((void*) &objA, TClassA::Wrapper_To_Call_Display);//此行void*?????? }
(void*) &objA;//可以去掉强制类转换如果可以隐式转换