《C++STL基础及应用》
#include <iostream>
#include<functional>
using namespace std;
//算数类基本函数对象使用
/*对常规的数据类型,char,int,float,string 可以直接按上述写法进行
* 但是对非常规数据类型,则必须重载类中的各个operator算数运算符,
* */
int main()
{
//产生一些算术类函数对象实体
plus<int >plusObj;
minus<int >minusObj;
multiplies<int>mulObj;
divides<int>divObj;
modulus<int>modObj;
negate<int>negObj;
//以下运用上述对象,履行函数功能
cout<<plusObj(2,4)<<endl;
cout<<minusObj(2,4)<<endl;
cout<<mulObj(2,4)<<endl;
cout<<divObj(2,4)<<endl;
cout<<modObj(2,4)<<endl;
cout<<negObj(2)<<endl;
//以下直接以函数对象的临时对象履行函数功能
//function<T>()是一个临时对象,调用operater运算符
cout<<plus<int>()(2,4)<<endl;
cout<<minus<int>()(2,4)<<endl;
cout<<multiplies<int>()(2,4)<<endl;
cout<<divides<int>()(2,4)<<endl;
cout<<modulus<int>()(2,4)<<endl;
cout<<negate<int>()(2)<<endl;
}