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