关于bind和function的联和使用
在前面我就把bind和function的使用都对大家都说了一遍,那他们怎么连起来使用了,function和bind连起来其实function就可以只是函数的引用,不需要在function里中去添加什么类的方法和类对象,这个类的方法和类对象就让bind来绑定就可以了,以下是对其用法的解释
基本的类的构造
class A
{
public:
int print(int a)
{
cout << "print(int a)" << endl;
return a;
}
static int printt(int a)
{
cout << "printt(int a)" << endl;
return a;
}
static int num;
int a=100;
};
int A::num = 100;
void print(int a)
{
cout << "print(int a)" << endl;
}
struct B
{
int operator()(int a)
{
cout << "operator(int a)" << endl;
return a;
}
};
struct C
{
int operator()()
{
cout << "operator()" << endl;
return 90;
}
};
bind和function对普通函数的使用
function<void(int)> fu = bind(&print, placeholders::_1);
fu(10);
bind和function对仿函数的使用
function<int()> fu1 = bind(&C::operator(), c);
fu1();
bind和function对类普通函数的使用
function<int(int)> fu3 = bind(&A::print, a, placeholders::_1);
cout << fu3(12) << endl;
bind和function对类静态变量的使用
function<int(int)> fu4 = bind(&A::printt,placeholders::_1);
cout << fu4(13) << endl;
bind和function对类的成员变量的使用
function<int()> fu5 = bind(&A::a, a);
cout << fu5() << endl;