一.函数指针
#include <iostream>
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;
}

二.std::bind和std::function
#include <functional>
#include <iostream>
typedef std::function<void (int ,int)> callback;
class MyTest
{
public:
void setCallback(callback cb)
{
m_callback = cb;
}
void add(int a, int b)
{
m_callback(a, b