#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;
}

posted on 2013-04-23 10:32  吉大依恋  阅读(288)  评论(0编辑  收藏  举报