深圳市公司网站建设价格,产品如何推广市场,网站名称怎么变更,网站空间怎样设置用户名和密码functionbind的理解 function模板类的构造函数#xff0c;把对象与成员函数绑定#xff0c;重载了#xff08;#xff09;#xff0c;利用对象调用成员函数 bind模板函数#xff0c;把对象与成员函数绑定#xff0c;返回function对象#xff0c;成员函数传参代码链接点…functionbind的理解 function模板类的构造函数把对象与成员函数绑定重载了利用对象调用成员函数 bind模板函数把对象与成员函数绑定返回function对象成员函数传参代码链接点这里
#include iostream//A类
struct A{void f(){ std:: cout void A:: f()\n; }
};//B类
struct B{void f(){ std:: cout void B:: f()\n; }
};//func模板类
templatetypename T
class func{
private:T a;void (T::*f)();
public: func( const T a, void(T::*f)() ):a(a),f(f) { } //参数为对象和成员函数指针的构造函数void operator()(){ (a.*f)( ); /* T类型对象a使用T类型的成员函数 */ } //重载()
};//bind_f模板函数// 返回func模板类对象
templatetypename T
funcT bind_f(const T a, void(T::*f)() ){ return funcT(a, f ); //构造一个func对象
}int main(int, char *[])
{A a;funcA t1 bind_f(a, A::f ); //A类对象与A类的任一成员函数绑定//返回func类对象t1();/* B b;funcB t2 bind_f(b, B::f );t2(); */return 0;
};