在学习Qt斗地主项目的开发中,遇到两段代码,其中只有一个参数不同,其余部分都相同:
如下图:
可以看到,除了标记处不同以外,其他部分完全一致。
为了去除冗余,采用匿名函数的形式编写,但是匿名函数不可以被调用,所以要借助可调用对象绑定器。
//头文件
#include<functional>
//语法
auto fun = std::bind(可调用对象地址, 绑定的参数/占位符);
匿名函数的地址就是其本身,所以将上图代码改为:
使用时和函数使用方式一样,传入参数,得到返回值。