仿函数,本质不是函数,而是可以象函数一样那么去使用。
普通函数
int fun(int a)
{
return 2*a;
}
那么我们使用的这个函数的时候,一般使用方式就是
int b = fun(5);
仿函数
class fun{
public:
fun(){}
int operator ()(int a){
return 2*a;
}
};
fun funtemp;
int b = funtemp(5);
仿函数是一个类,只不过重载了(),那么就可以象函数一样那么使用了。