c++成员函数指针

来源:互联网 发布:分析家数据接口 编辑:程序博客网 时间:2024/06/06 00:48

我写了个简单的样例,上代码:

#include<iostream>#include<cstdlib>#include<cstdio>#include<string>using namespace std;class A;typedef void (A::*PFUNC)(int);struct TEvent{    void * m_Sender;    PFUNC m_Method;};class A{public:    void foo(int Num);};void A::foo(int Num){    printf("[The Number is:%d]",Num);}class B{public:    TEvent m_Event;    void run()    {        ((A*)m_Event.m_Sender->*m_Event.m_Method)(132);    }};int main(){    A a;    B b;    b.m_Event.m_Sender = &a;    b.m_Event.m_Method = &A::foo;    b.run();    return 0;}
结果:

这个Demo演示了成员函数指针的使用,注意: &A::foo不等于&(A::foo),另外A,B本身是两个独立的模块,但是通过这种机制,可以把a的成员函数扔给b去执行。

原创粉丝点击