vendredi 14 août 2015

C++ User defined constructor for an abstract class

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