回調函數

回調,本質就是一個函數指針的調用過程,把函數指針A傳遞給另一個函數B,在另一個函數B處理完成後,再去調用函數A,這個過程稱爲回調,函數A稱爲回調函數。

本來想做一個簡單回調,模塊a的函數傳遞到b模塊,再回調a的成員函數,後來發現b模塊也要回調a,內容基本一樣,就想到了用多態來做動態調用。
class BaseCall
{
public:
    virtual void getMsg() = 0;
};

class Entrance;
typedef void(Entrance::*PFUNC)();

class Framework
{
public:
    void receiveMsg(Entrance* p,PFUNC p1)
    {
        (p->*p1)();
    }
};

class Entrance:BaseCall
{
public:
    Framework work;
    void getMsg()
    {

    }

   void Run()
    {
        work.receiveMsg(this,&BaseCall::getMsg);
    }
};

int main()
{
    Entrance e;
    e.Run();
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章