#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;
system("pause");
return 0;
}