In the code below (from Mark Joshi's C++ Design Design Patterns and Derivatives Pricing) could anyone explain why do we have to declare a default constructor, PayOff(){}, in the abstract class PayOff?
Thank you in advance Regards
#ifndef PAYOFF3_H
#define PAYOFF3_H
class PayOff
{
public:
PayOff(){};
virtual double operator()(double Spot) const=0;
virtual ~PayOff(){}
virtual PayOff* clone() const=0;
private:
};
class PayOffCall : public PayOff
{
public:
PayOffCall(double Strike_);
virtual double operator()(double Spot) const;
virtual ~PayOffCall(){}
virtual PayOff* clone() const;
private:
double Strike;
};
class PayOffPut : public PayOff
{
public:
PayOffPut(double Strike_);
virtual double operator()(double Spot) const;
virtual ~PayOffPut(){}
virtual PayOff* clone() const;
private:
double Strike;
};
#endif
Aucun commentaire:
Enregistrer un commentaire