将普通函数和类成员函数,通过std::function进行包装。
有点类似,函数指针的意思,但更多的是面向对象的思想。
#include <iostream>
#include<functional>
using namespace std;
int add(int a)
{
cout << a << endl;
return a;
}
class A {
public:
A() = default;
int xxx(int a)
{
cout << a << endl;
return a;
}
};
int main()
{
//普通函数
std::function<int(int)> f = add;
int x = f(123);
cout << x << endl;
//类的成员函数
std::function<int(A*, int)> f2 = &A::xxx; //这里绑定的时候,默认有一个this指针
A a;
int y = f2(&a, 456);
cout << y << endl;
return 0;
}