我在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
};
它必须是虚拟问题,但我无法解决它。有人有想法吗?提前致谢