#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<string>
using namespace std;
class TObject
{
};
typedef void (TObject::*TMethod)(int);
struct TEvent
{
TMethod Method;
TObject* Sender;
};
class B
{
public:
TEvent OnDisplay;
void run()
{
(OnDisplay.Sender->*OnDisplay.Method)(132);
}
};
class A
{
public:
void foo(int Num){printf("In Class A, [The Number is:%d]\r\n", Num);}
};
int main()
{
A a;
B b;
b.OnDisplay.Sender = (TObject*)&a;
b.OnDisplay.Method = (TMethod)&A::foo;
b.run();
return 0;
}
结果:
这个Demo演示了成员函数指针的使用,注意: &A::foo不等于&(A::foo)。