bind( )适配器(Adapter) -- 调用全局函数及成员函数

调用全局函数

调用全局函数程序实例:

运行结果:

“Nation” is part of”Internationalization”
请按任意键继续. . .

程序分析:

本例采用search()算法检验sub是否为s的一个子字符串,大小写不计。有了以下:

便是建立一个function object 并相当于调用:

注意:

bind( )内部会复制被传入的实参。

若要改变这种行为,让function object使用一个引用(reference)指向被传入的实参,可利用ref()或cref():

例如:

调用成员函数

以下程序示范bind()如何被用来调用成员函数

程序分析:

程序中的bind(&Person::print, _1)定义一个function object,其内针对传入的Person调用param1.print(),

也就是说,由于第一实参是个成员函数,下一个参数将定义“用以调用成员函数”的对象。

其他任何实参都会被传递给该成员函数。这意味着:

定义出一个function object,其内针对传入Person调用param1.print2("Person:")

Lambda实现调用全局函数及类成员函数

1 收藏 评论

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部