PayOff 是一个抽象基类,CallPayOff 和 PutPayOff 派生自它。调用运算符在基类中定义为纯虚函数,CallPayOff 和 PutPayoff 提供了自己的实现。
vector<PayOff*> v;
v.push_back(new CallPayOff(20));
v.push_back(new PutPayOff(20));
vector<double> payVals;
payVals.reserve(v.size());
transform(v.begin(), v.end(), back_inserter(payVals), bind2nd(mem_fun(&PayOff::operator()),this));
呼叫操作员定义为:
class PayOff
{
public:
virtual double operator()(double spot)const = 0;
virtual ~PayOff(){}
};
任何人都可以看看吗?Boost/C++11 不是一个选项。