当前位置: 首页 > news >正文

南宁北京网站建设百度百家号怎么赚钱

南宁北京网站建设,百度百家号怎么赚钱,音乐网站用什么语言做,广州市建设厅网站首页bind bind 用来将可调用对象和参数一起进行绑定。可调用对象包括普通函数、全局函 数、静态函数、类静态函数甚至是类成员函数,参数包括普通参数和类成员。绑定后的 结果,可以使用 std::function 进行保存,并延迟调用到我们需要的时候。 绑…

bind

bind 用来将可调用对象和参数一起进行绑定。可调用对象包括普通函数、全局函
数、静态函数、类静态函数甚至是类成员函数,参数包括普通参数和类成员。绑定后的
结果,可以使用 std::function 进行保存,并延迟调用到我们需要的时候。

绑定普通函数与参数及占位

bind 绑定顺序,也就是函数中形参的声明顺序。
placeholders::_x 中的序列是实参的顺序。

# if 1
//bind
#include <iostream>
#include <functional>using namespace std;double myDivide (double x, double y)
{return x/y;
}
int main(){auto myFunc = bind(myDivide, 10, 2);cout << myFunc() << endl;auto myFunc1 = bind(myDivide, 10,placeholders::_1);cout << myFunc1(2) << endl;//placeholders::_1 占位符,表示第一个参数,2表示第二个参数auto myFunc2 = bind(myDivide, placeholders::_2,placeholders::_1);cout << myFunc2(10,2) << endl;auto myFunc3 = bind(myDivide, placeholders::_1,placeholders::_2);cout << myFunc3(10,2) << endl;return 0;
}输出
5
5
0.2
5
# endif

绑定对象与成员及占位

绑定对象及成员函数时,顺序是调用成员,对象,[参数]。成员,对象及参数不能
有缺位,缺位可用 placeholders::_x 来占位。否则编译不过。

// todo 类成员函数绑定#include <iostream>
#include <functional>
using namespace std;
struct A{int x;double y;
};class B{
public:
//    void func(){
//        cout << "B::func()" << endl;
//    }void func(int x,int y){cout << "void func(int x,int y)" << endl;cout << "x=" << x << " y=" << y << endl;}};
int main() {A a={1,2.5};// 绑定到对象a的成员变量xauto f = bind(&A::x, a); // 绑定到对象a的成员变量xcout << f() << endl; // 输出1//B b;//auto f1 = bind(&B::func, b); // 绑定到对象b的成员函数func//f1(); // 输出B::func()////    B b1;//    auto f2 = bind(&B::func, b1,10,20); // 绑定到对象b的成员函数func//    f2(); // 输出void func(int x,int y) x=10 y=20B b1;auto f2 = bind(&B::func, b1,placeholders::_1,placeholders::_2); // 绑定到对象b的成员函数funcf2(3,4);return 0;
}

函数重载情形下的绑定


#include <iostream>
#include <functional>
using namespace std;int add(int x, int y)
{cout<<"int add(int x, int y)"<<endl;return x + y;
}double add(double x, double y)
{cout<<"double add(double x, double y)"<<endl;return x + y;
}class MyPair
{
public:int add(int x, int y){cout<<"MyPair:: int add(int x, int y)"<<endl;return x + y;}double add(double x, double y){cout<<"MyPair:: double add(double x, double y)"<<endl;return x + y;}
};int main(){auto f1= bind( (int (*)(int x, int y))add, 1, 2);f1(); // 输出 int add(int x, int y)auto f2= bind( (double (*)(double x, double y))add, 1, 2);f2(); // 输出 double add(double x, double y)MyPair p;auto f3= bind( (int (MyPair::*)(int x, int y))&MyPair::add, p, 1, 2);f3(); // 输出 MyPair:: int add(int x, int y)MyPair p1;auto f4= bind( (double (MyPair::*)(double x, double y))&MyPair::add, p1, placeholders::_1, placeholders::_2);f4(2,3); // 输出 MyPair:: double add(double x, double y)return 0;
}

bind 语义

语义小结
(1)bind 预先绑定的参数需要传具体的变量或值进去,对于预先绑定的参数,是pass-by-value 的。(2)对于不事先绑定的参数,需要传 std::placeholders 进去,从_1 开始,依次
递增。placeholder 是 pass-by-reference 的。(3)bind 的返回值是可调用实体,可以直接赋给 std::function 对象。(4)对于绑定的指针、引用类型的参数,使用者需要保证在可调用实体调用之前,
这些参数是可用的。(5)类的 this 可以通过对象或者指针来绑定。

多态之 bind +fucntion

function 本是不可以包装类成员函数,但是 bind 的可以实现类成员函数的绑定,
然后赋给 fucntion 对象,亦即实现了间接性的包装。

//todo bind + function
#include <iostream>
#include <functional>
using namespace std;void foo()
{cout<<"void foo()"<<endl;
}
void func(int a)
{cout<<"void func(int a)"<<endl;
}class Foo
{
public:void method(){cout<<"Foo::void method()"<<endl;}void method2(string s){cout<<"Foo:void method2()"<<endl;}
};class Bar
{
public:void method3(int a ,string s){cout<<"Bar:void method3()"<<endl;}
};std::function<void(void)> f;int main()
{f=foo;f(); // 输出 void foo()f= bind(func,10);f(); // 输出 void func(int a)Foo foo;f= bind(&Foo::method,foo);f(); // 输出 Foo::void method()f = bind(&Foo::method2,foo,"hello");f(); // 输出 Foo:void method2()Bar bar;f= bind(&Bar::method3,bar,1,"world");f(); // 输出 Bar:void method3()return 0;
}
http://www.wooajung.com/news/27196.html

相关文章:

  • 长春做网站多少钱全国疫情最新公布
  • 名师工作室建设名师网站微信小程序开发
  • 网站建设公司 2018搜索引擎广告案例
  • 哪个工业园区信息化网站做的好搜索引擎优化的目的是
  • 手机主页网站哪个好用网站推广软件免费版
  • 专业的企业智能建站比较好高质量内容的重要性
  • 镇江疫情最新消息今天重庆公司网站seo
  • 上海兼职做网站专业营销推广团队
  • 南京做企业网站的公司免费广告制作软件
  • 加工厂做网站免费优化推广网站的软件
  • 做面料哪个网站好艺考培训
  • 网站和域名区别广告做到百度第一页
  • 三亚做网站多少钱登封seo公司
  • 怎么查找网站的根目录厦门网络推广
  • 有没有可以在线做化学实验的网站厦门seo顾问
  • 做电子商务网站的总结靠谱的拉新平台
  • 前端主要做什么合肥seo网络营销推广
  • 建站系统主要包括什么文案代写平台
  • wordpress百家号主题重庆seo网站收录优化
  • 移动端web网站模板seo整站优化更能准确获得客户
  • 商标设计网站有哪些网站搭建教程
  • 做印章网站网站营销网
  • 专业俄文网站建设抓关键词的方法10条
  • 天津智能网站建设找哪家宁波seo推荐优化
  • 手工活接单在家做有正规网站吗智慧软文发稿平台
  • 什么网站可以做特价活动婚恋网站排名
  • 已备案个人网站做淘宝客百度精准营销获客平台
  • 做翻译网站 知乎东莞搜索优化
  • 宝鸡市公路建设局网站优化方案官网
  • 临沂手机网站建设中国企业网络营销现状