目录
何为仿函数
仿函数和模板的配合使用
何为仿函数
代码演示:
class Add
{
public:int operator()(int x, int y){return x + y;}
};
这是一个 Add 类,类里面有一个公有成员函数重载,重载的是括号
那么调用的时候:
Add add;cout << add(3, 5) << endl;
调用 Add 类中的函数重载时,就像是 add 是一个函数名,而括号中是参数,但是并不是如此
add 是一个类,第二行调用的本质是:
cout << add.operator()(3, 5) << endl;
代码验证:
类似于这种类而调用的函数重载的形式就叫做仿函数
仿函数和模板的配合使用
代码演示:
template<class T>class Add
{
public:T operator()(const T& x, const T& y){return x + y;}
};
这时的仿函数就能根据不同的变量来使用
代码验证: