代码:
#include <iostream>
class Linear {
private:
double slope;
double y;
public:
Linear(double s_ = 1, double y_ = 0 ):slope(s_), y(y_){}
double operator()(double x) { return y + slope * x; }
};
int main()
{
Linear f1;
Linear f2(2.5, 10.0);
double y1 = f1(2.5); //相当于f1.operator()(2.5)
double y2;
y2 = f2(12.5);
return 0;
}
分析:STL提供的函数对象(函数符)其本质是:重载了()运算符的类。因此,可以像使用函数调用那样,使用类对象。