首页 > 解决方案 > 参数构造函数出错:错误 C2511

问题描述

刚从 OOP 开始。在我的源文件中调用参数构造函数时遇到错误:

错误 C2511 'EuroVanillaOption::EuroVanillaOption(const double,const double,const double,const double,const double)':在 'EuroVanillaOption' 欧元期权计算器中找不到重载的成员函数。

这是什么原因?它与文件或类对象的名称有关吗?

此外,在 VScode 中,参数构造函数的标头声明下会显示一条绿色波浪线警告,说“未找到 EuroVanillaOption 的函数定义”,这是一个相关问题吗?

最后,预处理器指令的末尾有一个错误,它定义了_Euro_Vanilla_Option_H“预期声明”的名称,为什么?

...
EuroVanillaOption::EuroVanillaOption(const double _s, const double _K,
                                     const double _T, const double _r,
                                     const double _sigmaVOL) {
    s = _s;
    K = _K;
    T = _T;
    r = _r;
    sigmaVOL = _sigmaVOL;


} 

标头声明

public:
    EuroVanillaOption();                                    
    EuroVanillaOption(const double& _s, const double& _K,   
                      const double& _T, const double& _r,
                      const double& _sigmaVOL); 

标签: c++classoopparametersconstructor

解决方案


签名不一样。在标题中,您传递引用。在 .cpp 中,没有引用。他们需要匹配。(请参阅&标题中的标志。)

将这些作为参考传递会很奇怪。摆脱&.


推荐阅读