C++ 11 跨不同的类实现回调函数 std::function

2020-08-11  本文已影响0人  XBruce

使用示例:

// 首先定义一个函数类型
typedef std::function<void (char*, int)> ReceiveDataCallBack;

class Test
{
public:
    void receiveData() 
    {
         //...
        onReceiveData(buf, len);
    }
    void setOnReceiveData (ReceiveDataCallBack cb) { onReceiveData= cb; }

private:
    ReceiveDataCallBack onReceiveData;
}

// 在其他类内使用的方法
Test test;
test.setOnReceiveData ([this](char* data, int length)
{
         //[this]由于捕获了this指针,所以,函数内可以调用此类的变量了
});
上一篇下一篇

猜你喜欢

热点阅读