CallBack Function

CallBack Function,簡單來說,你使用一個函數,你就是call the function,若是在其他函數內你給了自己函數的指標,而該函數內在某處去使用這指標去呼叫你自己的函數,這時就叫做callback,這是C的特色之一,不過C++也拿來用就是,若是在class裡要使用callback的技術,請記住要把callback function宣告成static,不過說真的,放在class裡面跟在外面是差不多的就是:
#include <iostream>

#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
  TypeName(const TypeName&);               \
  TypeName& operator=(const TypeName&)

typedef void (*CALLBACK)(const char*);

class CBase
{
public:
    CBase() {}
    ~CBase() {}

    void Show(const char* str)
    {
        std::cout << str << std::endl;
    }

    // 在class裡要用宣告成static
    static void ShowCallBack(const char* str)
    {
        std::cout << str << std::endl;
    }

private:
    DISALLOW_COPY_AND_ASSIGN(CBase);
};

void TestCallBack(CALLBACK callback)
{
    callback("CallBack!!!");
}

int main()
{
    CBase* want_to_callback = new CBase;
    TestCallBack(CBase::ShowCallBack);
    delete want_to_callback;
    return 0;
}

0 意見:

張貼留言