没有合适的用户定义转换C ++

时间:2016-01-24 11:31:27

标签: c++ type-conversion

我在C ++上制作了一个简单的价格,但我遇到了转换类型错误。

简而言之,我有一个班级Option,其方法为PricingByCRR(BinomialModel Model),其中BinomialModel是另一个班级。我通过以下方式从类Option继承公共类Call:

class Option
{
public:
    virtual double Payoff(double s)=0;
    double PricingByCRR(BinomialModel Model);
private:
    int N;
};

class Call: public Option
{
public:
    void SetK(double K_);
    double Payoff(double s);
private:
    double K;
};

我的问题出现了:在我的主要内容中,我创建了一个CallOption这是一个调用,但我无法应用方法PricingByCRR,即使它应该由类Option继承。 ..

int main()
{
    BinomialModel Model;

    if (Model.InputData()==1) return 1;

    Call CallOption;
    CallOption.InputData();
    cout << "European call option price = "<< CallOption.PricingByCRR(Model) << endl;

    return 0;
}

我收到的错误消息是

  

没有合适的用户定义从'BinomialModel'转换为   'BinomialModel'。

这是我的BinomialModel:

class BinomialModel
{
public:
    double PricingProbability();    // Risk neutral probability; well-known formula
    double S(int n, int i);         // This function computes the stock price at node n, i
    int InputData();                // Entering data
    double GetR();

private:
    double S0;  // Initial value for the stock
    double u;   // The stock's price is u*S0
    double d;   // The stock's price is d*S0
    double r;   // Interest rate
};

它必须是虚拟问题,但我无法解决它。有人有想法吗?提前致谢

0 个答案:

没有答案