PayOff는 추상 기본 클래스이며 CallPayOff 및 PutPayOff에서 파생됩니다. 호출 연산자는 기본 클래스의 순수 가상 함수로 정의되며 CallPayOff 및 PutPayoff는 자체 구현을 제공합니다.가상 호출 연산자를 사용하는 std :: transform에서 "전역 함수에 'this'포인터가 없습니다.
class PayOff
{
public:
virtual double operator()(double spot)const = 0;
virtual ~PayOff(){}
};
사람이 봐 주시겠습니까 :
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));
전화 연산자로 정의된다? Boost/C++ 11은 옵션이 아닙니다. transform
에
C++ 11은 어떻습니까? –
죄송합니다. 이전 버전입니다. – user2696565
예, "main"에서 transform을 호출합니다. – user2696565