C++使用回调函数的两种方式

一.函数指针

#include 

typedef void (*callback)(int ,int);
class MyTest
{
public:
    void setCallback(callback cb)
    {
        m_callback = cb;
    }
    
    void add(int a, int b)
    {
        m_callback(a, b);
    }
    
private:
    callback m_callback;
};

void onCallback(int a, int b)
{
    std::cout << "a + b = " << a + b << std::endl;
}

int main(int argc, char *argv[])
{
    MyTest test;
    test.setCallback(onCallback);
    test.add(1, 1);
    return 0;
}

C++使用回调函数的两种方式_第1张图片

二.std::bind和std::function

#include 
#include 

typedef std::function callback;
class MyTest
{
public:
    void setCallback(callback cb)
    {
        m_callback = cb;
    }

    void add(int a, int b)
    {
        m_callback(a, b

你可能感兴趣的:(C/C++工作笔记,c++,callback,回调函数)