仿函数

#include <iostream>
using namespace std;

template <class T>
struct plus{
	T operator()(const T& x, const T& y) const { return x + y; }
};


template <class T>
struct minus{
	T operator()(const T& x, const T& y) const { return x - y; }
};


int main()
{
	plus<int> plusobj;
	minus<int> minusobj;

	// 使用仿函数,就像使用一般函数
	cout << plusobj(3, 5) << endl;
	cout << minusobj(3, 5) << endl;

	// 产生仿函数的临时对象,并调用之
	cout << plus<int>()(43, 50) << endl;
	cout << minus<int>()(43, 50) << endl;

	return 0;
}
原文地址:https://www.cnblogs.com/licb/p/2665484.html