【发布时间】:2016-11-21 14:20:56
【问题描述】:
我知道之前有人问过这个问题,我已经尝试过发布的解决方案,但由于某种原因我仍然无法解决我面临的问题。
我正在尝试创建派生类的对象。但是,我收到一条错误消息:
Error: no instance of constructor "CALibrary::YieldCurve::YieldCurve" matches te argument list argument types are: (std::string, std::vector<std::pair<double,double>,double>)
父类是:
namespace CALibrary {
class YieldCurveIF {
public:
virtual double getDiscountFactor(double fromDate, double toDate) = 0;
int getSize() {
return _curve.size();
}
std::vector<std::pair<double, double>> getCurve() {
return _curve;
}
void setParameters(std::string curveName,
std::vector<std::pair<double, double>>& curve)
{
_curveName = curveName;
_curve = curve;
}
protected:
std::string _curveName;
std::vector<std::pair<double, double>> _curve;
};
}
派生类是:
namespace CALibrary {
class YieldCurve : public CALibrary::YieldCurveIF
{
public:
YieldCurve(std::string curveName,
std::vector<std::pair<double, double>>& curve)
{
setParameters(curveName, curve);
}
double getDiscountFactor(double fromDate, double toDate);
private:
};
}
这是我试图创建 YieldCurve 对象的代码:
int nPayments = 4;
std::string curveName = "EURCurve";
std::vector<std::pair<double, double>, double> yCurve(nPayments);
CALibrary::YieldCurve _yieldCurve(curveName, yCurve);
【问题讨论】:
-
错误发生在“CALibrary::YieldCurve _yieldCurve(curveName, yCurve);”行尤其是变量“curveName”。
-
您是否尝试过修复
yCurve的类型(最后一段代码的第 3 行)?第三个double不应出现。
标签: c++ c++11 inheritance