仿函数
仿函数也叫函数对象,
C++标准规格定案后所采用的新名称是函数对象.
仿函数本质上是一个对象,却能像函数一样调用.
因为它对类中圆括号进行了重载,所以当函数一样调用时调用的是重载了()的函数.
例如
#include <iostream>
using namespace std;
template<class T>
class Plus {
public:
T operator()(T lhs, T rhs) {
return lhs + rhs;
}
};
int main()
{
Plus<int> pl;
cout << pl(5, 5) << endl; // 10
cout << Plus<int>()(5,3) << endl; // 8
return 0;
}
主函数中 pl 是用类模板实例化了一个对象.
然后将该对象像函数一样调用,因为有对圆括号的重载.
后者Plus()(5,3) 是产生了一个临时的无名对象,然后调用的其重载函数.